空 .vimrc 导致某些脚本无法加载?

empty .vimrc causing some scripts to not load?

在没有 ~/.vimrc 的情况下,当我在 vim 中 运行:scriptnames 时得到以下列表

  1: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/defaults.vim
  2: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/syntax/syntax.vim
  3: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/syntax/synload.vim
  4: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/syntax/syncolor.vim
  5: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/filetype.vim
  6: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/ftplugin.vim
  7: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/indent.vim
  8: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/getscriptPlugin.vim
  9: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/gzip.vim
 10: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/logiPat.vim
 11: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/manpager.vim
 12: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/matchparen.vim
 13: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/netrwPlugin.vim
 14: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/rrhelper.vim
 15: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/spellfile.vim
 16: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/tarPlugin.vim
 17: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/tohtml.vim
 18: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/vimballPlugin.vim
 19: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/zipPlugin.vim

但是,如果我只是 touch ~/.vimrc 我的 :scriptnames 就变成了这个

  1: ~/.vimrc
  2: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/getscriptPlugin.vim
  3: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/gzip.vim
  4: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/logiPat.vim
  5: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/manpager.vim
  6: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/matchparen.vim
  7: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/netrwPlugin.vim
  8: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/rrhelper.vim
  9: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/spellfile.vim
 10: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/tarPlugin.vim
 11: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/tohtml.vim
 12: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/vimballPlugin.vim
 13: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/plugin/zipPlugin.vim

什么导致 vim 跳过默认插件? 我真的很喜欢默认设置,有什么方法可以在不覆盖默认设置的情况下保留 vimrc 文件中的更改设置?

没有 vimrc Vim 将加载 /usr/share/vim/vim80/defaults.vim。可以看到第一行:

1: /usr/local/Cellar/vim/8.0.0134/share/vim/vim80/defaults.vim

在您的第二个 :scriptnames 输出中丢失。

来自:help defaults.vim

If Vim is started normally and no user vimrc file is found, the
$VIMRUTIME/defaults.vim script is loaded.

[...]

This should work well for new Vim users.  If you create your own .vimrc, it is
recommended to add this line somewhere near the top:
        unlet! skip_defaults_vim
        source $VIMRUNTIME/defaults.vim

请注意,这 适用于 Vim 8。Vim 7.4 及更早版本未随 defaults.vim 文件一起提供。