In Vim, quali sono le impostazioni / i comandi che iniziano con un prefisso (b :, g :)?


26

Ho installato questo plugin con Vundle e ho notato che ha alcune impostazioni (README le chiama variabili) come:

b:javascript_fold

e

g:javascript_conceal

Il README dice che "posso aggiungerli al tuo .vimrcper abilitare / disabilitare le loro funzionalità". Ma non sono sicuro di come impostarli tramite :. Queste variabili non sono disponibili tramite seto echo, né sono comandi o funzioni. Come posso impostare / ispezionare questi?

Risposte:


48

Queste sono variabili interne.

Puoi crearli e modificarli con il :letcomando:

:let g:var_name = 1

Li distruggi con :unlet.

Li ispezionate con :echo.

Il prefisso mostra l'ambito della variabile; da :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.

L'aggiunta di quel tipo di variabile al tuo ~/.vimrcva così:

let g:var_name = 1

Di solito, solo le variabili globali devono essere aggiunte alle ~/.vimrcvariabili buffer-local da utilizzare nei plugin del tipo di file.


2
Per completezza: senza prefisso: in una funzione: locale a una funzione; altrimenti: globale
Tom Hale

11

Le variabili di configurazione non sono opzioni, ma "emulano" solo quelle per i plugin. Pertanto, non si utilizza :set, ma :let(e :echoper elencare il loro valore corrente).

Il sigillo davanti alla variabile determina il suo ambito. g:significa globale; quelli di solito devono essere impostati prima del caricamento del plug-in, ovvero posizionandoli

let g:javascript_conceal = 1

nel tuo ~/.vimrc(e riavvio di Vim).

Poiché alcune configurazioni si applicano solo a determinati tipi di file , questi usano il b:prefisso. L'impostazione in li ~/.vimrcapplicherebbe semplicemente al primo buffer aperto, che non è quello che vuoi. Invece, è necessario agganciarsi al meccanismo di rilevamento del tipo di file .

Se si desidera abilitare solo un'opzione di configurazione per determinati tipi di file, utilizzare :let b:var = valueinvece e inserire i comandi corrispondenti ~/.vim/after/ftplugin/{filetype}.vim, dove si {filetype}trova il tipo di file effettivo (ad es javascript.). (Ciò richiede che tu abbia :filetype plugin on; l'uso della directory after ti consente di sovrascrivere qualsiasi impostazione di tipo di file predefinita eseguita da $VIMRUNTIME/ftplugin/{filetype}.vim.)

In alternativa, potresti definirne uno :autocmd FileType {filetype} setlocal option=valuedirettamente nel tuo ~/.vimrc, ma questo tende a diventare ingombrante una volta che hai molte personalizzazioni.

autocmd Filetype javascript let b:javascript_fold = 1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.