ChatGPT解决这个技术问题 Extra ChatGPT

如何查看哪些插件使 Vim 变慢?

有没有办法分析 Vim 插件?

当我打开一个大的 .py 时,我的 MacVim 变得越来越慢。我知道我可以取消选择所有插件并一一重新选择以检查哪个插件是罪魁祸首,但是有更快的方法吗?

我的 dotvim 在这里:https://github.com/charlax/dotvim

其实启动就好了。 Vim 使用几分钟后变慢。它尤其涉及 .py 文件。
二进制搜索要走的路。您在 2 小时前问过您的问题,您的问题的原因会在那个时候找到。 Ingo Karkat 的 autocmd 预感在我看来是最合理的。
这是真的——但你不认为如果有办法在一小时内获得相同的结果,那就更好了吗?更何况,启动还好,用了几分钟就可以了,所以要花很长时间。 autocmd 看起来很酷。刚刚尝试过,但 Vim 现在并不慢。
刚刚遇到同样的问题,但是在大红宝石文件上。发现 folding=syntax 可以放慢速度。尝试使用 folding=manual,现在一切正常

Z
ZyX

您可以使用内置的分析支持:启动 vim 后

:profile start profile.log
:profile func *
:profile file *
" At this point do slow actions
:profile pause
:noautocmd qall!

(不像真正需要退出 noautocmd,它只是让 vim 退出更快)。

注意:你不会得到关于在 vim 退出之前删除的函数的信息。


这真太了不起了。我能够看到 EasyTags 是罪魁祸首。非常感谢!
这帮助我将“vim-gitgutter”检测为堵塞物。
@subjectego :set more | verbose function {function_name} 将向您显示函数内容及其所在位置。
如果不清楚,生成的 profile.log 是 Vim 会话当前目录中的一个文件。
跳转到 profile.log 的末尾以查看按总时间排序的函数列表(在我发现末尾有一个排序列表之前,profile.log 对我来说似乎没用)。
f
feihu

我发现了另一种非常有用的 vim 内置方法,可以在加载 .vimrc 时显示准确的时间消息。

vim --startuptime timeCost.txt timeCost.txt

请运行:

:help --startuptime

在 VIM 中获取更多信息。


以防万一其他人想知道,这并不存在于所有 vim/gvim 发行版中。没有库存 Win Gvim 7.4 在这里(尽管它记录在 viminfo 中)
@thynctank 我在我的 gvim 7.4 上进行了尝试,它成功了。这是我的版本 IM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 10 2013 14:33:40)
最佳答案!帮助我确定了每次启动 vim 时让我生气的最慢插件。谢谢:)
这和基本的 -V 表明它是导致问题的非本地 $HOME
您需要执行 :e 来刷新文件。根据每个操作所花费的总时间对文件进行排序,如下所示:%! sort -k2 -nr
I
Ingo Karkat

它可以是插件或语法高亮;发生这种情况时尝试 :syntax off 看看 Vim 是否立即变得更快。

对于插件,“一般缓慢”通常来自自动命令; :autocmd 将它们全部列出。通过 :autocmd! [group] {event} 杀死其中一些进行调查。从更频繁的事件(即CursorMoved[I])继续到不太频繁的事件(例如BufWinEnter)。

如果您可以在某种程度上可靠地重现缓慢,则二进制搜索可能会有所帮助:移开 ~/.vim/plugin/ 中的一半文件,然后在另一组中重复缓慢的文件。

如果您确实需要深入了解,请获取启用了 :profile 命令的 Vim 版本。 (不是普通的 BIG Windows 版本,而是 Cygwin 附带的版本;此外,在大多数发行版下,自编译非常容易。)


P
Prince Goulash

我发现通过使用 -V 选项启动 Vim 将所有 Vim 活动打印到文件很有帮助:

vim -V12log

这提供了最大的详细程度(级别 12)并将其输出到文件 log。然后您可以执行一些您知道很慢的 Vim 操作,然后查看内部调用了哪些函数/映射。


但是日志上没有时间
佚名

如果您遇到屏幕更新操作(^L、滚动等)缓慢的问题,您的问题可能是语法高亮文件效率低下。您可以通过暂时禁用语法高亮 (:syn off) 并查看问题是否消失来对此进行测试;如果您想深入了解细节,可以使用 :syntime 分析当前语法文件:

打开导致语法突出显示性能问题的文件。运行 :syntime on 开始分析。稍微滚动一下文件。运行 :syntime report 生成报告。报告中首先列出的模式是处理时间最长的模式。


如果看起来语法高亮文件确实是罪魁祸首,那么下一步的行动是什么?
R
Raffi

一个非常简单的解决方案:找到一个慢速命令。将一个插件移至 /tmp/。再次尝试该命令。如果仍然很慢,请将另一个插件移至 /tmp/。重复,直到找到使命令变慢的插件。