2013-05-22 10 views

答えて

5

を。 v:vimmodeのような特別な変数が役に立ちますが、私はそのようなことは現在存在していないと思います。 vim_dev mailing listでこれを上げてみませんか?

制限されたモードで禁止されているものを呼び出した結果、そのモードを検出する必要があります。

restricted-mode無効外部コマンド(もいくつかの関連機能:

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:') 
2

私はこれは良いアイデアであればわからない:空のファイル名を指定してwritefile()を呼び出している成功した場合に少なくとも侵入である私の最高のアイデア)。 rvimで外部コマンドまたは特定の関数を呼び出すと、エラーE145が返されます。

だから多分system()でダミーの外部コマンドを呼び出し、例外E145をキャッチすることができます。それが制限されたモードであるかどうかを区別する。例えば

try 
    call system("echo x") "or even call system("") 
catch /E145/ 
"your codes 
endtry 

は、それが

を役に立てば幸い
関連する問題