如何让~/.vimrc在Vim脚本加载序列中最后执行?
解决Vim配置被后续脚本覆盖的问题
嘿,这个坑我之前踩过!Vim默认的加载顺序确实会让你的~/.vimrc在大部分插件之前执行,后面的脚本很容易把你的配置冲掉。直接改.vimrc的加载顺序是行不通的——Vim的初始化流程里用户配置就是早加载的,但我们有两个更靠谱的自动化方案:
方法一:利用Vim原生的after目录(推荐)
这是Vim官方推荐的解决配置覆盖问题的方式,不需要写复杂的命令:
- 在你的
~/.vim目录下创建after/plugin子目录(如果不存在的话):mkdir -p ~/.vim/after/plugin - 把你需要最后生效的配置(比如键位映射、全局变量设置那些容易被覆盖的内容)从
~/.vimrc移到~/.vim/after/plugin/my_final_config.vim(文件名随便取,只要是.vim后缀就行) - Vim会在所有常规插件、文件类型插件(ftplugin)加载完成后,自动加载
after目录下的所有脚本,这样你的配置就能稳稳覆盖前面的设置。
方法二:用自动命令延迟加载完整配置
如果你不想拆分配置文件,也可以在~/.vimrc的末尾加一段自动命令,让Vim在完全启动后重新加载你的配置:
" 先清除可能存在的同名自动命令,避免重复触发 autocmd! VimEnter * " 在Vim启动完成(所有插件加载完毕)后重新加载用户配置 autocmd VimEnter * source $MYVIMRC
这里用$MYVIMRC而不是硬编码路径,是因为它会自动指向你当前使用的vimrc文件,兼容性更好。
补充说明
你设置的F2执行:so ~/.vimrc本质上就是手动延迟加载配置,上面的两种方法只是把这个手动操作变成了Vim启动时的自动行为,彻底解放你的双手。
内容的提问来源于stack exchange,提问作者johns
相关产品推荐
相关产品推荐

