Was sind in Vim Einstellungen / Befehle, die mit einem Präfix (b :, g :) beginnen?


26

Ich habe dieses Plugin mit Vundle installiert und festgestellt, dass es einige Einstellungen hat (die README nennt sie Variablen) wie:

b:javascript_fold

und

g:javascript_conceal

Die README-Datei sagt, ich kann sie zu Ihrer hinzufügen, .vimrcum ihre Funktionen zu aktivieren / deaktivieren. Aber ich bin mir nicht sicher, wie ich sie einstellen soll :. Diese Variablen sind weder über setoder echonoch über Befehle oder Funktionen verfügbar . Wie kann ich diese einstellen / prüfen?

Antworten:


48

Dies sind interne Variablen.

Sie erstellen und ändern sie mit dem :letBefehl:

:let g:var_name = 1

Du zerstörst sie mit :unlet.

Sie inspizieren sie mit :echo.

Das Präfix zeigt den Gültigkeitsbereich der Variablen an. von :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.

Das Hinzufügen dieser Art von Variable zu Ihrem ~/.vimrcgeht so:

let g:var_name = 1

Normalerweise werden nur globale Variablen zu Ihren hinzugefügt, ~/.vimrcpufferlokale Variablen werden in Dateityp-Plugins verwendet.


2
Der Vollständigkeit halber: ohne Präfix: In einer Funktion: lokal für eine Funktion; ansonsten: global
Tom Hale

11

Konfigurationsvariablen sind keine Optionen, sondern "emulieren" nur die für Plugins. Daher verwenden Sie nicht :set, sondern :let(und, :echoum ihren aktuellen Wert aufzulisten).

Das Siegel vor der Variablen bestimmt den Gültigkeitsbereich. g:bedeutet global; Diese müssen normalerweise eingestellt werden, bevor das Plugin geladen wird, dh durch Platzieren

let g:javascript_conceal = 1

in Ihre ~/.vimrc(und Neustart von Vim).

Da einige Konfigurationen nur für bestimmte Dateitypen gelten , verwenden diese das b:Präfix. Wenn Sie sie aktivieren, werden sie ~/.vimrcnur auf den ersten geöffneten Puffer angewendet. Dies ist nicht das, was Sie möchten. Stattdessen müssen Sie sich in den Dateityp-Erkennungsmechanismus einbinden .

Wenn Sie eine Konfigurationsoption nur für bestimmte Dateitypen aktivieren möchten, verwenden Sie :let b:var = valuestattdessen die entsprechenden Befehle und geben Sie an ~/.vim/after/ftplugin/{filetype}.vim, wo {filetype}sich der tatsächliche Dateityp befindet (z javascript. B. ). (Dies setzt voraus , dass Sie über Folgendes verfügen: Mithilfe :filetype plugin ondes After- Verzeichnisses können Sie alle Standard-Dateitypeinstellungen überschreiben, die von vorgenommen wurden $VIMRUNTIME/ftplugin/{filetype}.vim.)

Alternativ können Sie ein :autocmd FileType {filetype} setlocal option=valuedirekt in Ihrem definieren ~/.vimrc, dies wird jedoch unhandlich, sobald Sie viele Anpassungen vorgenommen haben.

autocmd Filetype javascript let b:javascript_fold = 1
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.