如何检测Vim是否在限制模式下运行?

Unc*_*eiv 5 vim

......或者在任何模式下.

我只想在这种情况下阻止某些扩展加载,例如:

if ! currentmode('restricted')
     Bundle('some-extension')
endif
Run Code Online (Sandbox Code Playgroud)

Ing*_*kat 5

你是对的; 一个特殊的变量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:')
Run Code Online (Sandbox Code Playgroud)