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 .vimrc
para 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 set
ou 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 :let
comando:
: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 :echo
para 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 ~/.vimrc
apenas 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=value
diretamente 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