加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

vim 使用系列(三)-- 配置文件加载顺序

发布时间:2022-10-27 12:50:04 所属栏目:Linux 来源:
导读:  这篇文章简单讲讲 ubuntu 下 vim 的配置文件,其他 unix/类 unix 系统应该也是一样的。vim 启动之后将会自动读取它的配置文件。vim 中的配置文件有几种类型,可以通过vim --version查看,或者打开 vim,然后键入
  这篇文章简单讲讲 ubuntu 下 vim 的配置文件,其他 unix/类 unix 系统应该也是一样的。vim 启动之后将会自动读取它的配置文件。vim 中的配置文件有几种类型,可以通过vim --version查看,或者打开 vim,然后键入:version 查看,如我安装的 vim 输出如下:
 
  # 打开 vim,键入 :version
  VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Mar 18 2021 01:10:23)
  ...
     system vimrc file: "$VIM/vimrc"
       user vimrc file: "$HOME/.vimrc"
   2nd user vimrc file: "~/.vim/vimrc"
        user exrc file: "$HOME/.exrc"
         defaults file: "$VIMRUNTIME/defaults.vim"
    fall-back for $VIM: "/usr/local/share/vim"
   f-b for $VIMRUNTIME: "/usr/local/share/vim/vim82"
  ...
  如前述,vim 有几种类型,不同 vim 版本输出还不一样,像2nd user vimrc file是在 7.3 版本引入,7.4 版本确认的特性。下面按上面输出顺序一一简述一下:
 
  system vimrc file:这个是系统的配置文件,$VIM环境变量在:version中也输出来了,也可以通过:echo $VIM查看,我这里是/usr/local/share/vim。系统的配置文件在多用户管理时挺有用的,系统管理员可以为每个用户的 vim 配置可以使用这个 vimrc 文件。user vimrc file:这个是用户自定义的配置文件,$HOME就是家目录了,也就是~,同样可以通过:echo $HOME查看其绝对路径,我的系统是/home/ql。一般情况下我们都是使用这个文件作为配置文件。2nd user vimrc file:这个是第 2 个用户自定义的配置文件,这个文件的引入是由于一些类 unix 用户觉得单纯在$HOME目录下创建一个 vimrc 文件作为配置文件,又将 vim 的插件等放在别的目录是对$HOME目录的一种污染,所以就引入了第 2 个用户配置文件,用户可以将 vim 的一切配置都放在~/.vim/目录下了,而且如果需要将 vim 的配置拷贝到另一个系统的话,拷贝~/.vim/目录就可以了,比较方便。user exrc file:.exrc文件是 vi 的配置文件,不是 vim 的。defaults file:vim 默认的配置文件,当以上的 vim 配置文件都找不到时linux vim配置文件,vim 就会使用这个文件作为配置文件。
 
  vim 中有这么多的配置文件,到底使用哪个呢?默认情况下(即以vim filename方式启动 vim),vim 8.2 会先尝试读取system vimrc file文件,如果有先加载系统配置文件,然后按以下顺序查找初始化选项,要注意的是,当 vim 找到其中一个就会停止查找:
 
  The files are searched in the order specified above and only the first
 
  one that is found is read.
 
  VIMINIT环境变量:VIMINIT变量是用作 Ex 命令行来执行的,Ex 模式和命令行模式有点像。可以将VIMINIT当作是一条命令放在命令行中执行。譬如:
 
  $ pwd
  /home/ql
  $ touch test # 创建测试配置文件
  $ export VIMINIT=":source /home/ql/test" # 设置 shell 临时环境变量
  这样 vim 就会将 test 文件作为配置文件了。vim 用户配置文件:先查找user vimrc file,即~/.vimrc文件,如果查找不到的话,由于用户可能使用了 MS-DOS 兼容文件系统,所以文件名也可能是~/_vimrc。因此 vim 会尝试查找~/_vimrc文件,如果这个文件也找不到,那么 vim 就会尝试查找2nd user vimrc file。EXINIT环境变量:这个环境变量是 vi 的配置,不是 vim 的,vim 会以模拟 vi 的行为。user exrc file:这个和EXINIT一样,类似 vim 用户配置文件和VIMINIT环境变量的关系。defaults file:最后如果上述都找不到的话,那么就加载默认配置文件。
 
  当上述文件(除了加载的是默认文件)加载启动后,vim 会设置一个叫MYVIMRC的环境变量。当然,这个设置的前提是 shell 中没有设置MYVIMRC环境变量。上述 5 个初始化选项的内容都有可能覆盖系统配置文件的设置。
 
  具体的,vim 启动之后会加载哪些文件可以通过:scriptnames查看,像我通过defaults file启动 vim,:scriptnames输出如下:
 
    1: /usr/local/share/vim/vimrc
    2: /usr/local/share/vim/vim82/defaults.vim
    3: /usr/local/share/vim/vim82/filetype.vim
    4: /usr/local/share/vim/vim82/ftplugin.vim
    5: /usr/local/share/vim/vim82/indent.vim
    6: /usr/local/share/vim/vim82/syntax/syntax.vim
    7: /usr/local/share/vim/vim82/syntax/synload.vim
    8: /usr/local/share/vim/vim82/syntax/syncolor.vim
    9: /usr/local/share/vim/vim82/plugin/getscriptPlugin.vim
   10: /usr/local/share/vim/vim82/plugin/gzip.vim
   11: /usr/local/share/vim/vim82/plugin/logiPat.vim
   12: /usr/local/share/vim/vim82/plugin/manpager.vim
   13: /usr/local/share/vim/vim82/plugin/matchparen.vim
   14: /usr/local/share/vim/vim82/plugin/netrwPlugin.vim
   15: /usr/local/share/vim/vim82/plugin/rrhelper.vim
   16: /usr/local/share/vim/vim82/plugin/spellfile.vim
   17: /usr/local/share/vim/vim82/plugin/tarPlugin.vim
   18: /usr/local/share/vim/vim82/plugin/tohtml.vim
   19: /usr/local/share/vim/vim82/plugin/vimballPlugin.vim
   20: /usr/local/share/vim/vim82/plugin/zipPlugin.vim
  从上述输出可见确实是先加载系统配置文件,然后加载 defaults.vim,之后那些.vim文件是默认配置文件里的一些设置引起的文件加载。(我的系统配置文件是我自己创建的一个空白文件)
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!