2010-01-16 11 views
193

Gibt es eine einfache Möglichkeit, den aktuellen Wert einer angegebenen Vim-Einstellung herauszufinden? Wenn ich den aktuellen Wert wissen will von tabstop sagen, ich kann laufen:Aktuellen Wert einer Einstellung in Vim abrufen

:set tabstop 

ohne ein Argument übergeben, und Vim mir den aktuellen Wert sagen. Dies ist für viele Einstellungen in Ordnung, aber es ist nicht gut für diejenigen, die entweder wahr oder falsch sind. Zum Beispiel, wenn ich den aktuellen Wert von expandtab, um herauszufinden, Laufen:

:set expandtab 

wird expandtab tatsächlich aktivieren. Ich möchte nur herausfinden, ob es aktiviert ist oder nicht.

Diese Art der tut, was ich will:

:echo &l:expandtab 

aber es scheint recht ausführlich. Gibt es einen schnelleren Weg?

Antwort

283

Hinzufügen eines? Marke nach der Einstellung, und es wird den Wert

:set expandtab? 
+9

Beachten Sie, dass die 'set <...>?' - Syntax für "Einstellungen" funktioniert, die _options_ sind, aber nicht für "Einstellungen", die _variables_ sind. Um zum Beispiel herauszufinden, was der aktuelle Syntax-Highlighting-Modus ist (kodiert in einer Variablen, keine Option), müssen Sie 'echo b: current_syntax' eingeben. –

+4

Wenn Sie auch _where_ sehen möchten, für die die Option festgelegt wurde, verwenden Sie 'verbose'. In diesem Beispiel: ': verbose set expandtab'. – mkobit

17

Alternativ zeigt das & Symbol kann verwendet werden, bedeuten „Option“ - z.B.

let x = &expandtab 
echo &expandtab 
+0

Gibt es auch eine Option, um den Wert eines Listenelements zu erhalten? (z. B. Speicherplatz von listchars) –

+0

Ich glaube, dass listchars eine gewöhnliche Zeichenkette ist, keine Liste, obwohl ich denke, dass Sie etwas tun könnten wie 'split (& listchars, ',')' – cdyson37

0

Es gibt auch zusätzliche vim Einstellungen, die auch angezeigt werden können, wie zum Beispiel:

:highlight

Für die vollständige Liste finden Sie unter: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Edit: Es gibt einige ist Missverständnis meiner Antwort. Dies funktioniert nicht für einen Befehl. Aber es funktioniert für alle Befehle, die in der URL oben aufgeführt sind.

+0

Dies funktioniert nicht. Ich wollte überprüfen, ob 'autowrite' an ist. ': set autowrite?' erledigt den Job. – Atcold

Verwandte Themen