我在所有工作的机器上都携带一个vimrc文件,它自然包含一些在旧版本vi中不存在的选项。
如果我在一个没有将vi别名设置为vim和/或没有安装vim的机器上意外启动了vi会话,vi将读取vimrc并抛出一堆烦人的错误,提示我某些选项不受支持。
我知道我可以始终键入"vim"而非"vi",并设置EDITOR变量为vim(针对visudo等),但我是否可以在vimrc的顶部添加一行,以便在vi读取文件时提前退出脚本?
:if version >= 500
: version-5-specific-commands
:endif
类型:
:help if
当在vim中时,获取更多信息。
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。
vim --version VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 29 2020 08:09:16)
即7.4,那么这里的500是什么意思? - Prabhat Kumar Singh“vi”会读取vimrc文件,因为它肯定是使用名称“vi”编译的Vim。而且很可能编译时设置了“非常Vi兼容”的选项,所以你可以尝试检查“compatible”功能来检测“vi”:
if !has("compatible")
let g:loaded_matchparen=1
syntax off
endif
vi --version
命令时,它显示的是VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Feb 17 2012 10:24:10)
,所以这是一个关闭了某些功能的 VIM 编译的 vi。从描述中我可以看到这是“没有 GUI 的小版本”。但是为什么这个方法有效呢?我有什么遗漏吗? - garg10may