关于编辑:Vim响应相当慢

Vim response quite slow

如果我打开一个包含5,000行代码的文件并继续输入,我发现我的vim变得非常慢,它在大约1秒后显示我的输入。

在我启动--noplugin后,它甚至不会变得更好。 但在切换我的.vimrc文件后,一切都恢复正常。 .vimrc文件由我自己编写,经过一段时间的检查,我仍然找不到错误。 我清除了所有的关键地图,但问题仍然存在。

那么你可以给我任何建议或告诉我如何在vim中调试吗? 我发现有一个调试选项,但无法获得如何工作。


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

1
2
3
4
5
6
7
--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的编译时没有设置或错误设置ruby_path(另请参阅关于google vim / ruby?? google group的讨论)。在vimrc中设置它更容易,因为你可以在不重新编译vim的情况下进行更改。您可以通过.vimrc文件中的g:ruby_path变量设置路径。不要复制和粘贴两者,使用正确的。

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

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

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

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

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

对我来说,在vim中加载ruby特定函数的部分速度提高了10倍。

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


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


如果运行vim 7.4,

把它放在你的.vimrc中

设置regexpengine = 1

vim 7.4有一个新的正则表达式引擎,在某些情况下看起来效果不佳。以前的版本vim 7.3使用旧引擎(设置regexpengine = 1)。

语法突出显示问题的"慢响应"也会影响vim帮助文件(和.vimrc文件)。


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

1
2
3
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

1
set -sg escape-time 10