我刚刚发现了一些关于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
,我的设置就不会被覆盖。我觉得很困惑。有没有人对此有所了解?任何帮助表示赞赏!
答案 0 :(得分:3)
$ mkdir ~/.vim
并将任何自定义或第三方脚本添加到该目录,根据需要创建子目录。$ touch ~/.vim/vimrc
并设置您的选项和映射以及该文件中的内容。:help startup
。答案 1 :(得分:0)
在我的情况下,我能够追踪问题并解决它。
我认为它有点复杂,但基本上是基于Debian的系统正在发生的事情:
/etc/vim/vimrc
似乎已加载。目录/etc/vim
似乎是从/usr/share/vim/vim80
符号链接。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
更好的方法是重新配置插件当然,但为了简单起见,我现在不会走得那么远。