Obter o valor atual de uma configuração no Vim

274

Existe uma maneira simples de descobrir o valor atual de uma configuração especificada do Vim? Se eu quiser saber o valor atual de, digamos tabstop, eu posso executar:

:set tabstop

sem passar por um argumento, e o Vim me dirá o valor atual. Isso é bom para muitas configurações, mas não é bom para aquelas que são verdadeiras ou falsas. Por exemplo, se eu quiser descobrir o valor atual de expandtab, executando:

:set expandtab

irá realmente ativar expandtab. Eu só quero descobrir se está ativado ou não.

Esse tipo de faz o que eu quero:

:echo &l:expandtab

mas parece bem detalhado. Existe uma maneira mais rápida?

nelstrom
fonte

Respostas:

378

Adicionar um? após o nome da configuração e mostrará o valor

:set expandtab?
JaredPar
fonte
15
Observe que a set <...>?sintaxe funcionará para "configurações" que são opções , mas não para "configurações" que são variáveis . Por exemplo, para descobrir qual é o modo de destaque da sintaxe atual (codificado em uma variável, não em uma opção), você precisa fazer echo b:current_syntax.
Maxy-B
16
Se você também quiser ver de onde a opção foi definida, use verbose. Para este exemplo :verbose set expandtab,.
Mkobit 19/03/19
1
Como você vê o valor atual de configurações como behave? Eu tentei behave?e set behave?. Infelizmente, eles não funcionam.
Jdhao
38

Como alternativa, o &símbolo pode ser usado para significar "opção" - por exemplo

let x = &expandtab
echo &expandtab
cdyson37
fonte
Existe também uma opção para obter o valor de um elemento da lista? (por exemplo, espaço de listchars)
816-8055 14/07
Acredito listchars é uma cadeia comum, não uma lista, embora eu acho que você poderia fazer algo assimsplit(&listchars, ',')
cdyson37
9

Se você não se lembra de qual porperty deseja verificar,

você pode verificar todas as configurações usando

:set all

e todas as configurações serão listadas.

徐新晨
fonte
4

Também há configurações adicionais do vim que também podem ser exibidas, como:

:highlight

Para obter a lista completa, consulte: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Edit: Há algum mal-entendido da minha resposta. Isso não funciona para nenhum comando. Mas funciona para todos os comandos listados na URL acima.

wisbucky
fonte
Isso não funciona. Eu queria verificar se autowriteestá ativado. :set autowrite?faz o trabalho.
Atcold 31/03/16
@Atcold: isso funciona para algumas configurações, para as quais apenas esse tipo de consulta funcionará.
Gmarmstrong
@ gmarmstrong: Vejo que a resposta foi editada com tal observação.
Atcold