【问题标题】:Vim response quite slowVim 响应很慢
【发布时间】:2012-03-09 15:37:05
【问题描述】:

如果我打开一个包含 5000 行代码的文件并继续输入,我发现我的 vim 变得很慢,大约 1s 后它显示我的输入。

在我开始使用--noplugin 之后,它甚至不会变得更好。但是在切换我的.vimrc 文件后,一切都恢复正常了。 .vimrc文件是我自己写的,查了一段时间,还是找不到错误所在。我已经清除了所有的键映射,但问题仍然存在。

那么你能给我任何建议或告诉我如何在 vim 中调试吗?我发现有一个调试选项,但不知道如何工作。

【问题讨论】:

  • Janus 被使用过吗?如果是这样,这似乎是一个普遍的问题。如果 xou 不依赖逃犯,请禁用它。 github.com/carlhuda/janus/issues/396
  • 谢谢三位。我现在不知道 vim 的版本。但是好像不是vim引起的,而是我写的脚本有问题。
  • 文件类型是什么?那是XML吗?你试过:syn off 吗?
  • 这是java文件。对不起,它在公司的电脑里。等我回公司再贴出来。

标签: vim editor


【解决方案1】:

你可以在启动vim时使用--startuptime选项:

--startuptime {fname}                   *--startuptime*
        During startup write timing messages to the file {fname}.
        This can be used to find out where time is spent while loading
        your .vimrc, plugins and opening the first file.
        When {fname} already exists new messages are appended.
        (Only available when compiled with the |+startuptime|
        feature).

采取以下步骤来诊断问题:

  • 在 bash 中输入 vim --startuptime log.txt main.java 以启动 vim
  • 在vim中输入:tabe log.txt查看日志。

【讨论】:

  • 嗨,卡夫。我的 vim 启动并不慢。
  • 好的,我试试。谢谢凯夫。
【解决方案2】:

速度慢的原因通常是 vim 编译时未设置或设置错误的 ruby​​_path (see also discussion on google vim/ruby google group)。在 vimrc 中设置它更容易,因为你可以在不重新编译 vim 的情况下更改它。您可以通过 .vimrc 文件中的 g:ruby_path 变量设置路径。不要同时复制和粘贴,使用正确的。

如果你设置了 RBENV,你必须使用这个:

" ruby path if you are using rbenv
let g:ruby_path = system('echo $HOME/.rbenv/shims')

如果你设置 RVM,你必须使用这个:

" ruby path if you are using RVM
let g:ruby_path = system('rvm current')

您也可以使用vim-rbenv 插件,它也可以设置路径。

对我来说,在 vim 中加载 ruby​​ 特定函数的部分快了 10 倍。

如果您使用的是 jruby,那么启动速度可能会更大。请参阅修复它的示例here

【讨论】:

  • 确实,通过这种方法强制使用 ruby​​ 路径可以大大提高 vim 的启动速度。谢谢!
【解决方案3】:

如果运行 vim 7.4,

把它放在你的 .vimrc 中

设置 regexpengine=1

vim 7.4 有一个新的正则表达式引擎,在某些情况下似乎不能正常工作。以前版本的 vim 7.3 使用旧引擎 ( set regexpengine=1 )。

语法高亮问题的“缓慢响应”也会影响 vim 帮助文件(以及 .vimrc 文件)。

【讨论】:

  • :set regexpengine=1 -- 这是一个很好的发现,没有其他专家提到过。在此更改之后,我得到了一些改进(但不是完整的)。我速度变慢的另一个原因是:set relativenumber,它导致大量屏幕重绘有效地显示速度变慢。
【解决方案4】:

这样的事情通常是由语法着色引起的。试试:syntax off

【讨论】:

  • 在文件大小(~5000 行)上应该不会出现任何问题,我的文件要大得多,而且仍然没有减速。如果是 500000 行,也许……
  • 不是语法问题,我换了别人的vimrc,语法是开的。它工作正常。谢谢。
  • 当我关闭语法时,问题解决了。但是当我更改 vimrc 文件时它也会加快速度。我在这两个 vimrc 文件中引用了相同的语法。
  • 这是对我的语法着色 YAML 文件的答案。谢谢!
【解决方案5】:

将这些行添加到您的~/.vimrc~/.config/nvim/init.vim

set lazyredraw   " don't redraw everytime
set synmaxcol=128  " avoid slow rendering for long lines
syntax sync minlines=64  " faster syntax hl

另外,如果您使用 tmux,请考虑将其添加到您的 ~/.tmux.conf

set -sg escape-time 10

【讨论】:

    猜你喜欢
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多