Vi / Vim 初学者入门: vimrc在哪儿?

本文是Vi / Vim 初学者入门(系列文章)之一,请点击链接阅读更多关于 Vim 有关的文章。

vimrc究竟在哪儿呢?这个问题对一个vim的入门用户来说,可能实在不是个问题,你可能回答:”不就是 $HOME/.vimrc 吗?”。是的,这个答案正确,不过不是全部。在这篇文章中,易水会带你更深入的了解这个问题的答案。

首先,在 Linux 下的 Vim 中输入 :version 命令(可能你是使用 Linux 下的 vi 命令打开编辑器,不过在大多数 Linux 中,vi 命令打开的就是 Vim),我们略过不相关的内容,关于 vimrc 的显示如下(可能你的显示不完全和这里相同):

:version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jun 26 2017 11:44:34)
Included patches: 1-678
Compiled by Easwy Yang <easwy.......>
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
...

在上面,我们看到列出了几个 vimrc 文件,有一个系统的 vimrc 文件,还有用户的 vimrc 文件,以及系统和用户 gvimrc 文件。出于和vi兼容的目的,vim也支持vi的exrc配置文件。

接着,我们在 Windows 系统中输入 :version 命令,可以看到如下输出(我使用的是预编译的 Vim 8.0):

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 23 2017 20:01:28)
MS-Windows 32-bit GUI version with OLE support
Included patches: 1-586
Compiled by mool@tororo
   system vimrc file: "$VIM\vimrc"
     user vimrc file: "$HOME\_vimrc"
 2nd user vimrc file: "$HOME\vimfiles\vimrc"
 3rd user vimrc file: "$VIM\_vimrc"
      user exrc file: "$HOME\_exrc"
  2nd user exrc file: "$VIM\_exrc"
  system gvimrc file: "$VIM\gvimrc"
    user gvimrc file: "$HOME\_gvimrc"
2nd user gvimrc file: "$HOME\vimfiles\gvimrc"
3rd user gvimrc file: "$VIM\_gvimrc"

比较一下上面两个 :version 命令的输出,我们发现:
– 在windows下,有两个可选的用户 vimrc 文件,一个是 $HOME\_vimrc,另外一个是 $VIM\_vimrc。 Vim 启动时,会先尝试执行系统的 vimrc 文件(通常此文件不存在),然后将按照上述顺序查找用户 vimrc,并使用所找到的第一个用户 vimrc 中的配置,忽略其余的用户 vimrc。
– 在Linux下使用的 vimrc 文件名为 .vimrc,而在 Windows 下因为不支持以点(.)开头的文件名,vimrc 文件的名字使用 _vimrc。不过,在Linux下,如果未找到名为 .vimrc 的文件,也会尝试查找名为 _vimrc 文件;而在 Windows 下也是这样,只不过查找顺序颠倒一下,如果未找到名为 _vimrc 的文件,会去查找 .vimrc
– 从这里可以看出,vimrc 的执行先于 gvimrc。所以我们可以把全部 vim 配置命令都放在 vimrc 中,不需要用 gvimrc。

对于vim初学者,如果不知道 $HOME 或者 $VIM 具体是哪个目录,可以在 vim 中用下面的命令查看:

:echo $VIM
:echo $HOME

Windows 版本的 Vim 在安装时,缺省会安装一个 $VIM/_vimrc,你可以直接修改这个 _vimrc,加入你自己的配置(使用 :e $VIM/_vimrc 即可打开此文件)。或者,你也可以在 Windows 中增加一个名为 HOME 的环境变量(控制面板 -> 系统 –> 高级 –> 环境变量),然后把你的 vimrc 放在 HOME 环境变量所指定的目录中。从上面 :version 命令的输出看到,$HOME/_vimrc 如果存在,就会执行这个文件中的配置,从而跳过 $VIM/_vimrc

如果使用 vim -u filename 命令来启动 Vim,则会用你指定的 filename 作为 Vim 的配置文件(在调试你的 vimrc 时有用);如果用 vim -u NONE 命令启动 Vim,则不读取任何 vimrc 文件:当你怀疑你的 vimrc 配置有问题时,可以用这种方式跳过 vimrc 的执行。

更多关于 vimrc 的配置,参见易水所写的vim使用进阶系列文章。如果你想掌握更多关于 Vim 的技巧,可以阅读我与车文隆合译的Vim实用技巧一书,该书第二版已经由人民邮电出版社出版。

“Vi / Vim 初学者入门: vimrc在哪儿?”的12个回复

  1. 那个,这个 vim的配置文件,他的读取顺序是什么,最后安装了一个自动补全的插件(autocomplpop),好像把原来的自动缩进给覆盖了(不能根据语法自动对齐)

  2. 感谢您提供这么好的教程。
    哎,我现在刚刚开始学习linux嵌入式,一直想找一个 顺手的工具,之前很粗浅的使用了一段时间的vim,后来在别人的指导下学习 emacs。 感觉 emacs 还是太重了。 vim 更轻巧一些,命令格式也更加符合我的习惯。
    再次谢谢博主啦~

  3. 你好,看了你的文章学到不少东西。

    另外,我有个问题请教,在Windows下的gVim.exe启动的时候到哪里去找环境变量$VIM?

    控制面板->系统–>高级–>环境变量,这里并没有定义。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注