代码之家  ›  专栏  ›  技术社区  ›  charlax

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

  •  367
  • charlax  · 技术社区  · 14 年前

    有没有办法评测Vim插件?

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

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

    6 回复  |  直到 13 年前
        1
  •  580
  •   ZyX    14 年前

    您可以使用内置的评测支持:在启动vim-do之后

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

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

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

        2
  •  93
  •   feihu    12 年前

    我发现了另一个非常有用的vim构建方法,可以在加载.virc时显示精确的定时消息。

    vim --startuptime timeCost.txt timeCost.txt
    

    请运行:

    :help --startuptime
    

    在VIM中获取更多信息。

        3
  •  31
  •   Ingo Karkat    14 年前

    它可以是一个插件或语法突出显示;试试 :syntax off 当这种情况发生时,看看Vim是否立即变得更快。

    对于插件,“一般的缓慢”通常来自于自动命令;一 :autocmd 列出了所有内容。通过杀死其中一些人进行调查 :autocmd! [group] {event} .从更频繁的事件开始(即。 CursorMoved[I] )到不太频繁的(例如。 BufWinEnter )。

    如果你能在一定程度上可靠地再现慢度,二进制搜索可能会有所帮助:将中的一半文件移走 ~/.vim/plugin/ ,然后是另一个,在那一盘中重复,速度很慢。

    如果你真的需要看看引擎盖下面,那就买一个Vim版本,它有 :profile 命令已启用。(不是普通的BIG Windows版本,但Cygwin附带的版本有它;而且,在大多数发行版下,自编译非常容易。)

        4
  •  18
  •   Prince Goulash    14 年前

    我发现用 -V 选项:

    vim -V12log
    

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

        5
  •  13
  •   user149341 user149341    8 年前

    如果您在屏幕更新操作方面遇到问题( ^L 、滚动等)速度较慢,您的问题可能是语法高亮显示文件效率低下。您可以通过暂时禁用语法高亮显示来测试这一点( :syn off )看看问题是否会消失;如果您想深入了解详细信息,可以使用 :syntime 以下为:

    1. 打开导致语法突出显示性能问题的文件。
    2. 跑 :syntime on 开始分析。
    3. 在文件中滚动一点。
    4. 跑 :syntime report 以生成报告。报告中首先列出的模式是处理时间最长的模式。
        6
  •  1
  •   Raffi    6 年前

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