......或以任何方式处理此事。如何检测Vim是否在限制模式下运行?
我只是想阻止一些扩展加载的时候是这样的话,是这样的:
if ! currentmode('restricted')
Bundle('some-extension')
endif
......或以任何方式处理此事。如何检测Vim是否在限制模式下运行?
我只是想阻止一些扩展加载的时候是这样的话,是这样的:
if ! currentmode('restricted')
Bundle('some-extension')
endif
你是对的;像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:')
我不知道这是否是一个好主意:
restricted-mode
禁用外部命令(也有一些相关的功能是侵入性最小的上成功调用writefile()
用一个空文件名我最好的主意)。如果我们在rvim中调用外部命令或某些特定功能,我们会收到错误E145
。
所以,也许你可以通过system()
调用一些虚拟的外部命令,然后赶上异常E145
。以区分它是否处于限制模式。例如
try
call system("echo x") "or even call system("")
catch /E145/
"your codes
endtry
希望它有助于