Ottieni il valore corrente di un'impostazione in Vim


274

C'è un modo semplice per scoprire il valore corrente di un'impostazione Vim specificata? Se voglio sapere il valore corrente di, diciamo tabstop, posso eseguire:

:set tabstop

senza passare un argomento, e Vim mi dirà il valore corrente. Questo va bene per molte impostazioni, ma non va bene per quelli che sono veri o falsi. Ad esempio, se voglio scoprire il valore corrente di expandtab, in esecuzione:

:set expandtab

abiliterà effettivamente expandtab. Voglio solo scoprire se è abilitato o meno.

Questo tipo di fa quello che voglio:

:echo &l:expandtab

ma sembra abbastanza prolisso. C'è un modo più veloce?

Risposte:


378

Aggiungere un ? segna dopo il nome dell'impostazione e mostrerà il valore

:set expandtab?

15
Si noti che la set <...>?sintassi funzionerà per "impostazioni" che sono opzioni , ma non per "impostazioni" che sono variabili . Quindi, ad esempio, per scoprire qual è l'attuale modalità di evidenziazione della sintassi (codificata in una variabile, non un'opzione), devi farlo echo b:current_syntax.
Maxy-B,

16
Se vuoi vedere anche da dove è stata impostata l'opzione, usa verbose. Per questo esempio :verbose set expandtab,.
mkobit,

1
Come si vede il valore corrente di impostazioni come behave? Ho provato behave?e set behave?. Sfortunatamente, non funzionano.
jdhao,

38

In alternativa, il &simbolo può essere usato per indicare "opzione" - ad es

let x = &expandtab
echo &expandtab

Esiste anche un'opzione per ottenere il valore di un elemento elenco? (ad es. spazio di listchars)
816-8055

Credo che listchars sia una stringa normale, non un elenco, anche se immagino che potresti fare qualcosa del generesplit(&listchars, ',')
cdyson37

9

Se non ricordi quale porpora vuoi controllare,

puoi controllare tutte le impostazioni usando

:set all

e verranno elencate tutte le impostazioni.


4

Ci sono anche altre impostazioni vim che possono essere visualizzate, come:

:highlight

Per l'elenco completo, consultare: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Modifica: c'è qualche incomprensione della mia risposta. Questo non funziona per nessun comando. Ma funziona per tutti i comandi elencati nell'URL sopra.


Questo non funziona. Volevo verificare se autowriteè attivo. :set autowrite?fa il lavoro.
Atcold

@Atcold: questo funziona con alcune impostazioni, per le quali funziona solo questo tipo di query.
gmarmstrong,

@gmarmstrong: vedo che la risposta è stata modificata con tale osservazione.
Atcold,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.