繁体   English   中英

如何检测.vimrc中的vi(不是vim)?

[英]How to detect vi (not vim) in .vimrc?

我将vimrc带到我工作的所有机器上,它自然包含旧vi中不存在的选项。

如果我不小心在vi不是vim的别名和/或vim的别名的机器上启动vi会话,vi会读取vimrc并抛出一堆恼人的错误让我知道这样的选项不受支持。

我知道我总是可以输入“vim”而不是“vi”,并将EDITOR变量设置为vim(对于visudo等...),但是我可以添加一行我将添加到vimrc的顶部以退出脚本如果vi读取文件,请尽早?

如果vi实际上不是vim的链接,它不应该读取.vimrc ,它应该读取.exrc 它正在读取.vimrc的事实表明它实际上是vim的早期版本。 如果是这种情况,您可以使用vim“if”构造来包含较新的功能,如下所示:

:if version >= 500
:  version-5-specific-commands
:endif

类型:

:help if

什么时候在vim获取更多信息。

如果您想在支票中更具体,您也可以检查个别功能。

我在.vimrc中有这个:

if has("eval")
    " Syntax stuff
    let java_highlight_all=1
endif


if has("autocmd")
    " Buffers
    autocmd BufEnter * cd %:p:h
endif

非vim不读取.vimrc,它正在寻找.exrc。 您可以使用“if version> = 500”检测旧版本的vim

“vi”读取vimrc,因为它肯定是用名称“vi”编译的Vim。 并且它可能被编译为“非常兼容”,因此您可以尝试检查“兼容”功能以检测“vi”:

if !has("compatible")
   let g:loaded_matchparen=1
   syntax off
endif

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM