En Vim, ¿qué son las configuraciones/comandos que comienzan con un prefijo (b:, g:)?

En Vim, ¿qué son las configuraciones/comandos que comienzan con un prefijo (b:, g:)?

lo instaléeste complementocon Vundle y noté que tiene algunas configuraciones (el README las llama variables) como:

b:javascript_fold

y

g:javascript_conceal

El README dice Yo, "puedo agregarlos a su .vimrcpara habilitar/deshabilitar sus funciones". Pero no estoy seguro de cómo configurarlos mediante :. Estas variables no están disponibles a través de seto echo, ni son comandos o funciones. ¿Cómo puedo configurarlos/inspeccionarlos?

Respuesta1

Estas son variables internas.

Los creas y modificas con el :letcomando:

:let g:var_name = 1

Los destruyes con :unlet.

Los inspeccionas con :echo.

El prefijo muestra el alcance de la variable; 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.

Agregar ese tipo de variable a tu ~/.vimrces así:

let g:var_name = 1

Por lo general, solo se deben agregar variables globales a su archivo ~/.vimrc, y las variables locales del búfer se deben usar en complementos de tipo de archivo.

Respuesta2

Las variables de configuración no son opciones, sólo "emula" las de los complementos. Por lo tanto, no usas :set, sino :let(y :echopara enumerar su valor actual).

El sigilo delante de la variable determina su alcance. g:significa global; normalmente es necesario configurarlosantesel complemento se carga, es decir, colocando

let g:javascript_conceal = 1

en su ~/.vimrc(y reiniciando Vim).

Como algunas configuraciones se aplican solo a ciertostipos de archivo, estos usan el b:prefijo. Configurarlos ~/.vimrcsimplemente los aplicaría al primer búfer abierto, que no es lo que desea. En lugar de eso, necesitas conectarte aldetección de tipo de archivomecanismo.

Si solo desea habilitar una opción de configuración para ciertos tipos de archivos, úsela :let b:var = valueen su lugar y coloque los comandos correspondientes en ~/.vim/after/ftplugin/{filetype}.vim, donde {filetype}está el tipo de archivo real (por ejemplo javascript, ). (Esto requiere que usted tenga :filetype plugin on; uso de ladespuésEl directorio le permite anular cualquier configuración de tipo de archivo predeterminada realizada por $VIMRUNTIME/ftplugin/{filetype}.vim.)

Alternativamente, puede definir un :autocmd FileType {filetype} setlocal option=valuedirectamente en su ~/.vimrc, pero esto tiende a volverse difícil de manejar una vez que tiene muchas personalizaciones.

autocmd Filetype javascript let b:javascript_fold = 1

información relacionada