VIM以哪种顺序加载哪个配置文件?

时间:2017-10-28 07:54:58

标签: vim configuration-files

我刚刚发现了一些关于VIM的问题的stackoverflow答案,并且非常混淆为什么我设置的配置参数不能按照这些答案中的建议工作。事实证明,他们只是被覆盖了,但其他我不知道的VIM配置文件!所以我想知道:

a)VIM以哪个顺序加载哪个配置文件? (如果我了解这一点,我可能会解决下一个问题。)

b)我想加载所有默认值,然后启用/禁用特定的一些设置。我必须在哪个配置文件中定义它?

请记住,我正在尝试避免配置文件中的疯狂黑客攻击。下一次系统更新可能会覆盖它们。因此,我试图找到一种方法来使用/etc/vim/vimrc.local或类似的配置文件来覆盖所有现有设置。但是,如果在 /etc/vim/vimrc.local加载后加载了其他配置文件,则没有用。为了实现这一点,我尝试在/usr/share/vim/vim80/defaults.vim中明确加载/etc/vim/vimrc.local,然后明确地将g:skip_defaults_vim设置为1,以避免VIM稍后再次加载它。哪个 - 我可以看到 - 不起作用,因为/etc/vim/vimrc.local我自己的设置被覆盖了。但是如果我从正在运行的VIM实例中明确加载/etc/vim/vimrc.local,我的设置就不会被覆盖。我觉得很困惑。有没有人对此有所了解?任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

  1. $ mkdir ~/.vim并将任何自定义或第三方脚本添加到该目录,根据需要创建子目录。
  2. $ touch ~/.vim/vimrc并设置您的选项和映射以及该文件中的内容。
  3. 请勿在该目录之外执行任何与vim相关的操作。
  4. :help startup
  5. 详细解释了所有内容

答案 1 :(得分:0)

在我的情况下,我能够追踪问题并解决它。

我认为它有点复杂,但基本上是基于Debian的系统正在发生的事情:

  • 首先/etc/vim/vimrc似乎已加载。目录/etc/vim似乎是从/usr/share/vim/vim80符号链接。
  • 在v / etc / vim / vimrc a file named内加载debian.vim`。
  • 然后在/etc/vim/vimrc内加载文件/etc/vim/vimrc.local。我希望对其进行更改的目的是为了实现这一目标。
  • 在此文件中,我使用/usr/share/vim/vim80/defaults.vim来加载包维护者提供的默认值。然后我将g:skip_defaults_vim设置为1,以防止vim再次加载这些默认值。
  • /usr/vim/vimrc.local之后,我设置了所有系统范围的默认值。

如果我现在运行vim,则某些默认值无法生效。我可以在vim中明确设置它们以启用它们。或者 - 奇怪的是 - 不加载defaults.vim。在" defaults.vim"加载了文件类型缩进插件,导致我不能在/usr/vim/vimrc.local内设置覆盖的不良行为。如果我关闭这个插件,任何违约都会按预期生效。在已经被vim接受所有其他配置之后,如果要编辑特定文件,则此插件似乎会覆盖默认设置。

所以有一个简单的解决方案:通过将此行添加到/etc/vim/vimrc.local来关闭此插件:

filetype plugin indent off

更好的方法是重新配置插件当然,但为了简单起见,我现在不会走得那么远。