cha*_*lax 295 debugging vim optimization macvim
有没有办法分析Vim插件?
当我打开一个大的时候,我的MacVim变得越来越慢.py.我知道我可以取消选择所有插件并逐个重新选择以检查哪个插件是罪魁祸首,但有更快的方法吗?
我的dotvim在这里:https://github.com/charlax/dotvim
ZyX*_*ZyX 466
您可以使用内置的分析支持:启动vim后
:profile start profile.log
:profile func *
:profile file *
" At this point do slow actions
:profile pause
:noautocmd qall!
Run Code Online (Sandbox Code Playgroud)
(不像退出noautocmd那样真的不需要,它只会使vim退出更快).
注意:在vim退出之前,您将无法获得有关已删除的功能的信息.
fei*_*ihu 72
我发现了另一个非常有用的vim buildin方法,用于在加载.vimrc时显示准确的计时消息.
vim --startuptime timeCost.txt timeCost.txt
Run Code Online (Sandbox Code Playgroud)
请运行:
:help --startuptime
Run Code Online (Sandbox Code Playgroud)
在VIM中获取更多信息.
Ing*_*kat 30
它可以是插件或语法突出显示; 尝试一下,:syntax off当发生这种情况时,看看Vim是否会立即变得更快.
对于插件,"一般的缓慢"通常来自自动命令; a :autocmd列出所有.通过杀死其中一些进行调查:autocmd! [group] {event}.从更频繁的事件(即CursorMoved[I])到较不频繁的事件(例如BufWinEnter).
如果你可以在某种程度上可靠地再现缓慢,那么二进制搜索可能有所帮助:将一半文件移走~/.vim/plugin/,然后移动另一文件,在缓慢的集合中重复.
如果你真的需要深入了解,请获取:profile启用了该命令的Vim版本.(不是vanilla BIG Windows版本,但Cygwin附带的版本有它;而且,在大多数发行版中,自编译非常容易.)
Pri*_*ash 14
我发现通过使用以下-V选项启动Vim将所有Vim活动打印到文件很有帮助:
vim -V12log
Run Code Online (Sandbox Code Playgroud)
这提供了最大的详细程度(级别12)并将其输出到文件log.然后,您可以执行一些您知道速度较慢的Vim操作,然后查看内部调用的函数/映射.
如果您在屏幕更新操作(^L,滚动等)缓慢方面遇到问题,则可能是语法突出显示文件效率低下。您可以通过暂时禁用语法突出显示(:syn off)并查看问题是否消失来进行测试。如果要深入研究细节,可以使用:syntime以下命令来分析当前语法文件:
:syntime on以开始分析。:syntime report以生成报告。报告中最先列出的模式是处理时间最多的模式。