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?

Respostas:


378

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

:set expandtab?

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

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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.