![](/img/trans.png)
[英]Vim/gVim 8.1 on Windows 10 won't source $HOME\_vimrc
[英]_vimrc him home directory overrides _vimrc in $VIM
在 Linux 上,当我创建一个~/.vimrc
文件时,它会扩展系统设置,因为它运行我的~/.vimrc
文件中的命令而不更改我的文件中没有的任何设置。
在 Windows 上, %HOMEPATH%\_vimrc
文件似乎覆盖了其他设置文件,因为即使添加空白文件也会完全改变 vim 的行为。
这是 Windows 的预期行为吗? 如果我想扩展其他设置文件,是否需要将它们复制到我的主目录中?
这就是 Vim 的工作方式:如果你没有vimrc
,它会加载$VIMRUNTIME/defaults.vim
; 如果你有那么它没有。
您在 Linux 上遇到了什么问题,您应该更清楚。 也许是系统的/etc/vimrc
,也许是 Neovim 等。
如果您想从defaults.vim
添加设置,只需执行runtime defaults.vim
Vim 版本 8 及更高版本(这可能是您正在使用的)附带一个defaults.vim
文件,该文件在找不到用户 vimrc 文件时使用。 defaults.vim
文件启用文件类型检测和语法突出显示,以及被认为对所有或大多数 Vim 用户有用的其他设置。 有关详细信息,请参阅:help defaults.vim
。
所以这就是您在 Windows 上看到的内容,您在其中安装了 Vim package 从官方网站获得默认的 Z944037673FD3 行为。 为了向后兼容, defaults.vim
行为仅在您根本没有用户 vimrc 文件 ( %HOMEPATH%\_vimrc
) 或明确包含它时才会发生。
建议在启动新的 vimtex 文件时显式加载它,顶部有两行:
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
The reason why you might not see this on Linux is that some Linux distributions (namely Debian, possibly Ubuntu which inherits many Debian packages) decided they didn't like the defaults.vim
behavior, particularly the part of it not getting enabled if the user vimrc 文件存在。 (这是可以理解的,当您创建一个空的 vimrc 文件并且 Vim 突然表现不同并且很多东西被禁用时,您已经看到了它带来的混乱!)
因此,他们发布了一个系统 vimrc 文件/etc/vimrc
来完成许多defaults.vim
文件所做的事情(例如启用文件类型检测和语法突出显示),然后完全禁用defaults.vim
行为(通过设置skip_defaults_vim
变量。)因此,在这些发行版中,您不会获得defaults.vim
行为,除非您明确包含它(并且仅当您首先解除禁用它的变量时。)另一方面,您总是从系统 vimrc 文件中获得类似或等效的设置由配送配送。
我的建议是在 vimrc 文件中启用defaults.vim
行为,该行为适用于所有平台和所有 Linux 发行版。 它还包括一些有用的设置,这些设置在 Linux 发行版的/etc/vimrc
中不存在,这些设置会禁用defaults.vim
。vim 行为,因此它在那里也可能有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.