Vimでは、プレフィックス(b:、g :)で始まる設定/コマンドは何ですか?


26

このプラグインをVundleでインストールしたところ、次のような設定(READMEでは変数と呼ばれています)があることに気付きました。

b:javascript_fold

そして

g:javascript_conceal

READMEには、「それらを追加し.vimrcて機能を有効/無効にすることができます」と書かれています。しかし、私はそれらを設定する方法がわからない:。これらの変数は、setまたはを介して使用できませんecho。また、コマンドや関数も使用できません。これらを設定/検査するにはどうすればよいですか?

回答:


48

これらは内部変数です。

:let次のコマンドで作成および変更します。

:let g:var_name = 1

あなたはそれらでそれらを破壊します:unlet

あなたはそれらを検査します:echo

プレフィックスは変数のスコープを示します。から: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.

この種の変数を追加すると、次のようになります~/.vimrc

let g:var_name = 1

通常、グローバル変数のみがに追加され~/.vimrc、バッファローカル変数はファイルタイププラグインで使用されます。


2
完全を期すため:接頭辞なし:関数内:関数に対してローカル。そうでない場合:グローバル
トム・ヘイル

11

構成変数はオプションではなく、プラグインの変数を「エミュレート」するだけです。したがって、あなたが使用していない:setが、:let(および:echoそれらの現在の値をリストします)。

変数の前にあるシギルがそのスコープを決定します。g:グローバルを意味します。これらは通常、プラグインがロードされる前に設定する必要があります。つまり、

let g:javascript_conceal = 1

~/.vimrc(そしてVimを再起動します)

一部の構成は特定のファイルタイプにのみ適用されるため、これらはb:プレフィックスを使用します。これらを設定する~/.vimrcと、最初に開いたバッファに適用されますが、これは望みではありません。代わりに、ファイルタイプ検出メカニズムにフックする必要があります。

特定のファイルタイプの設定オプションのみを有効にする場合は、:let b:var = value代わりにを使用し、対応するコマンドをに入れます~/.vim/after/ftplugin/{filetype}.vim。ここ{filetype}で、は実際のファイルタイプ(例:)javascriptです。(これは、あなたが持っていることが必要です:filetype plugin on。使用後のディレクトリは、あなたがで行わ任意のデフォルトのファイルタイプ設定を上書きすることができます$VIMRUNTIME/ftplugin/{filetype}.vim。)

または、で:autocmd FileType {filetype} setlocal option=value直接を定義することもできますが、~/.vimrc多くのカスタマイズを行うと、これが扱いにくくなる傾向があります。

autocmd Filetype javascript let b:javascript_fold = 1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.