No Vim, quais são as configurações/comandos que começam com um prefixo (b:, g :)?

No Vim, quais são as configurações/comandos que começam com um prefixo (b:, g :)?

Eu instaleieste plug-incom Vundle e notei que ele possui algumas configurações (o README as chama de variáveis) como:

b:javascript_fold

e

g:javascript_conceal

O README diz que eu "posso adicioná-los ao seu .vimrcpara ativar/desativar seus recursos". Mas não tenho certeza de como configurá-los via :. Essas variáveis ​​não estão disponíveis por meio de setou echo, nem são comandos ou funções. Como posso definir/inspecionar isso?

Responder1

Estas são variáveis ​​internas.

Você os cria e modifica com o :letcomando:

:let g:var_name = 1

Você os destrói com :unlet.

Você os inspeciona com :echo.

O prefixo mostra o escopo da variável; de :help internal-variables:

buffer-variable    b:    Local to the current buffer.
window-variable    w:    Local to the current window.
tabpage-variable   t:    Local to the current tab page.
global-variable    g:    Global.
local-variable     l:    Local to a function.
script-variable    s:    Local to a |:source|'ed Vim script.
function-argument  a:    Function argument (only inside a function).
vim-variable       v:    Global, predefined by Vim.

Adicionar esse tipo de variável ao seu ~/.vimrcé assim:

let g:var_name = 1

Normalmente, apenas variáveis ​​globais devem ser adicionadas ao seu arquivo ~/.vimrc, variáveis ​​locais de buffer devem ser usadas em plug-ins de tipo de arquivo.

Responder2

Variáveis ​​de configuração não são opções, elas apenas "emulam" aquelas para plugins. Portanto, você não usa :set, mas :let(e :echopara listar seu valor atual).

O sigilo na frente da variável determina seu escopo. g:significa global; esses geralmente precisam ser definidosanteso plugin é carregado, ou seja, colocando

let g:javascript_conceal = 1

no seu ~/.vimrc(e reiniciando o Vim).

Como algumas configurações se aplicam apenas a determinadostipos de arquivo, estes usam o b:prefixo. Defini-los ~/.vimrcapenas os aplicaria ao primeiro buffer aberto, o que não é o que você deseja. Em vez disso, você precisa se conectar aodetecção de tipo de arquivomecanismo.

Se você deseja ativar apenas uma opção de configuração para determinados tipos de arquivo, use :let b:var = value-o e coloque os comandos correspondentes em ~/.vim/after/ftplugin/{filetype}.vim, onde {filetype}é o tipo de arquivo real (por exemplo javascript, ). (Isso requer que você tenha :filetype plugin on; uso dodepoispermite que você substitua quaisquer configurações de tipo de arquivo padrão feitas por $VIMRUNTIME/ftplugin/{filetype}.vim.)

Como alternativa, você pode definir um :autocmd FileType {filetype} setlocal option=valuediretamente no seu arquivo ~/.vimrc, mas isso tende a se tornar complicado quando você tem muitas personalizações.

autocmd Filetype javascript let b:javascript_fold = 1

informação relacionada