Vim响应很慢

时间:2012-02-18 13:52:24

标签: vim editor

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

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

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

5 个答案:

答案 0 :(得分:12)

启动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 以查看日志。

答案 1 :(得分:11)

缓慢的原因通常是在vim(see also discussion on google vim/ruby google group)的编译时没有设置或设置错误的ruby_path。在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

答案 2 :(得分:7)

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

答案 3 :(得分:6)

如果运行vim 7.4,

把它放在你的.vimrc

设置regexpengine = 1

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

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

答案 4 :(得分:0)

将这些行添加到您的~/.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