Vim 加载模式下的 /etc/vimrc 行为差异解析
2024-03-19 12:07:44
Vim 中不同加载模式下的 /etc/vimrc 行为差异
问题:
在 Vim 中,使用 source /etc/vimrc
命令加载 /etc/vimrc
文件与直接启动 Vim 时加载该文件的方式不同。在启动 Vim 时,文件类型插件处于启用状态,但在使用 source
命令加载时,插件被禁用。
原因:
这种差异是由于 Vim 加载脚本的方式造成的。当启动 Vim 时,它会按照以下顺序加载脚本:
- 加载默认脚本(位于
$VIMRUNTIME/defaults.vim
) - 加载用户脚本(位于
~/.vimrc
) - 加载系统脚本(位于
/etc/vimrc
)
然而,当使用 source
命令加载 /etc/vimrc
时,它只会加载该文件,而不会加载其他脚本。
解决方法:
要确保无论启动 Vim 的方式如何,文件类型插件都被禁用,可以在 /etc/vimrc
文件的底部添加以下行:
source /etc/vimrc.custom
其中,/etc/vimrc.custom
是包含文件类型插件设置的文件。这样,每次启动 Vim 或使用 source
命令加载 /etc/vimrc
时,文件类型插件都会被禁用。
深入探讨:
了解 Vim 的加载顺序对于理解不同加载模式下 /etc/vimrc
行为差异非常重要。Vim 8.0 及更高版本引入了 defaults.vim
文件,该文件在启动时加载并覆盖其他脚本中的设置。因此,如果存在 ~/.vimrc
文件(即使为空),defaults.vim
将不会加载。这可能会导致启动 Vim 时与使用 source
命令加载 /etc/vimrc
时行为不同。
结论:
通过理解 Vim 的加载顺序,可以控制在不同加载模式下加载的脚本。在 /etc/vimrc
文件中使用 source
命令可以确保脚本在启动 Vim 时和使用 source
命令加载时以一致的方式加载。
常见问题解答
1. 为什么存在加载顺序差异?
加载顺序差异是出于技术原因,以允许用户自定义 Vim 而又不覆盖系统默认设置。
2. 如何在启动 Vim 时加载 ~/.vimrc
?
在 /etc/vimrc
文件的底部添加以下行:
source ~/.vimrc
3. 如何查看 Vim 加载的脚本?
在 Vim 中运行以下命令:
:scriptnames
这将显示按加载顺序加载的所有脚本的列表。
4. 如何禁用 defaults.vim
?
在 /etc/vimrc
或 ~/.vimrc
文件中添加以下行:
let skip_defaults_vim = 1
5. 如何获得 Vim 的最新版本?
从官方 Vim 网站下载并安装最新版本。