4

【解決済み】解決策はこれのようです:

if exists('g:nameOfMyOption') && g:nameOfMyOption
     ...
endif

とても簡単ですが、オンラインで答えを見つけることができません。プラグインファイルで次のようなことをしたい:

" MyChecker.vim
"
" Uncomment the following line to set the autochecker option
"set autochecker=1

if ISSET(autochecker)
   autocmd InsertChange * :call MyAutoCheckerFunction()
endif

ISSET ラインはどのように行うのですか? 明示的に autochecker=0 を設定する必要はなく、autochecker が存在するかどうかを確認するだけにしたいのです。

編集:次のことを試すと:

if &autochecker == 1
    ...
endif

次のエラー メッセージが表示されます。

Error detected while processing MyChecker.vim:
line   32:
E113: Unknown option: autochecker
E15: Invalid expression: &autochecker == 1
4

2 に答える 2

6

vim でカスタム オプションを作成することはできません。代わりに、次のようなグローバル変数を作成する必要があります。

let g:AutoChecker = 1

....

if g:AutoChecker == 1
   " ...
endif
于 2012-04-04T17:34:30.403 に答える
1

一般的なオプションについては、次の関数を使用します: lh#option#get()。最初に存在するかどうかを検索b:{varname}してその値を返し、次にg:{varname}. それ以外の場合、変数が存在しない場合は、指定されたデフォルト値が返されます。

関連するオプションのプログラミング (つまり、特定のファイルタイプに対してオプションをオーバーライドできる) には、別の関数lh#dev#option#get()を使用します。

lh-cppドキュメントのC++ オプションセクションでは、これら 2 つの関数の背後にある理論的根拠を間接的に説明しています。

于 2012-04-05T11:30:50.027 に答える