微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.vimrc的重新加载时间逐渐减慢

我的vim的启动时间大约是半秒钟(用“–startuptime”测试),但是在我通过源重新加载vimrc几次后,它会慢一些.我没有系统地调试.vimrc,所以我不知道如何进行.设置详细有助于看到发生了什么,我几乎肯定.vimrc被加载不止一次. (特别是filetype.vim和ftplugin.vim)每当我按Ctrl-C停止挂起,我在filetype.vim中收到一个错误,我认为是因为vim花费大部分时间尝试加载filetype.vim.我看到的最可能的罪魁祸首是.vimrc的自动重新加载:
if has("autocmd")
    autocmd bufwritepost .vimrc source $MYVIMRC "auto source vimrc
endif

我怎么能阻止这种情况发生?

这里的罪魁祸首是你使用autocmd.当您定义一个自动命令时
autocmd <Event> <Action>

vim定义一个新的自动命令,而不管现有的自动命令.所以当你的.vimrc中有几个这样的自动命令,并反复提供它(在这种情况下,对于每一次写入),你最终定义了数以百计的自动命令,这些命令都是重复的.很快就会爆炸和减慢你的vim会话,这是你注意到的.

您需要做的是将您的自动命令分组,然后使用autocmd!清除该组的定义.作为一个简单的例子:

augroup Group1  
    autocmd!
    autocmd <Event1> <Action1>
    autocmd <Event2> <Action2>
    ...    
augroup END

您可以拥有尽可能多的组,您可以通过类似的操作/事件来组织它们.

原文地址:https://www.jb51.cc/vim/386708.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐