如何正确地重新加载 .vimrc 文件,使其等同于 vim 的重启?

How to correctly reload .vimrc file so it will be equal to restart of vim?

我使用 MacVim,在我的 .vimrc 文件中,我有 map ,V :source $MYVIMRC<CR> 绑定,允许我在最近修改的情况下应用最新版本的 .vimrc。 但是我注意到可能会发生奇怪的事情,重新启动会减慢 vim 并且某些插件在按下 ,V 后可能会开始冲突,如果我只是关闭并从头开始重新启动 MacVim 一切正常。

如果您能提示我这种行为的原因,我将不胜感激,因为我希望有可能更新 .vimrc 文件以完全清除内部 vim状态并获取新的配置文件

将配置重新应用到原始 Vim 的唯一可行方法实际上是重新启动它。

但最有可能导致速度变慢的原因是 overuse/misuse 自动命令。

添加自动命令而不检查现有的。一个结果是,如果您没有正确管理它们,它们往往会堆积起来,并且在触发该事件时会执行与特定事件对应的每个单独的自动命令,从而导致可怕的减速。

以下是您应该在 vimrc 中使用自动命令的两种方式:

方法一

" anywhere
augroup nameofthegroup
    autocmd!
    autocmd EventName pattern commandtoexecute
    autocmd AnotherEventName anotherpattern anothercommandtoexecute
augroup END

方法#2

" near the top of your vimrc
augroup nameofthegroup
    autocmd!
augroup END

" anywhere
autocmd nameofthegroup EventName pattern commandtoexecute
autocmd nameofthegroup AnotherEventName anotherpattern anothercommandtoexecute

我们的想法是创建一组自动命令,在调用时自动清除,从而防止它们堆积。