2013-05-22 27 views

回答

5

你是对的;像v:vimmode这样的特殊变量会有所帮助,但我不认为目前存在这样的事情。为什么不提高vim_dev mailing list?!

与此同时,您必须通过调用限制模式中禁止的某些内容来检测模式。

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

我不知道这是否是一个好主意:

restricted-mode禁用外部命令(也有一些相关的功能是侵入性最小的上成功调用writefile()用一个空文件名我最好的主意)。如果我们在rvim中调用外部命令或某些特定功能,我们会收到错误E145

所以,也许你可以通过system()调用一些虚拟的外部命令,然后赶上异常E145。以区分它是否处于限制模式。例如

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

希望它有助于

相关问题