...或任何方式。
在这种情况下,我只想阻止加载某些扩展,例如:
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()
的外部命令,然后捕获异常E145
。来区分它是否处于受限模式。例如
try
call system("echo x") "or even call system("")
catch /E145/
"your codes
endtry
希望能帮助到你