...またはそのことについては、任意のモードで。
そのような場合に、一部の拡張機能が読み込まれないようにしたいだけです。
if ! currentmode('restricted')
Bundle('some-extension')
endif
...またはそのことについては、任意のモードで。
そのような場合に、一部の拡張機能が読み込まれないようにしたいだけです。
if ! currentmode('restricted')
Bundle('some-extension')
endif
あなたが正しい; のような特別な変数v:vimmode
は役に立ちますが、現在そのようなものは存在しないと思います。これをvim_devメーリングリストに上げてみませんか?!
それまでの間、制限モードで禁止されている何かを呼び出した結果からモードを検出する必要があります。成功への影響が最も少ない私の最良のアイデアはwritefile()
、空のファイル名で呼び出すことです。
silent! call writefile([], '')
" In restricted mode, this fails with E145: Shell commands not allowed in rvim
" In non-restricted mode, this fails with E482: Can't create file <empty>
let isRestricted = (v:errmsg =~# '^E145:')
これが良い考えかどうかはわかりません:
restricted-mode
外部コマンドを無効にしました(一部の関連機能も)。rvim で外部コマンドまたは特定の関数を呼び出すと、 Error が返されE145
ます。
したがって、 を介してダミーの外部コマンドを呼び出すだけでsystem()
、 Exception をキャッチできますE145
。制限モードかどうかを区別します。例えば
try
call system("echo x") "or even call system("")
catch /E145/
"your codes
endtry
それが役に立てば幸い