Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim response quite slow

Tags:

vim

editor

If I open a file containing 5,000 lines of code and continue to input, I found that my vim became very slow, it displays my input after about 1s.

It even won't become any better after I start up with --noplugin. But after switching my .vimrc file, everything gets fine again. The .vimrc file is written by myself and after checking for some time, I still can't locate the error. I have clear all the key maps, but the problem still exists.

So can you give my any advise or tell my how to debug in vim? I found there is a debug option but can't get how to work.

like image 674
Frank Cheng Avatar asked Feb 18 '12 13:02

Frank Cheng


2 Answers

You can use the --startuptime option when start vim:

--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).

Take following steps to diagnose the problem:

  • type vim --startuptime log.txt main.java in bash to start vim
  • type :tabe log.txt in vim to view the log.
like image 154
kev Avatar answered Oct 01 '22 07:10

kev


The reason for slowness is often the not set or wrong set ruby_path on compile time of vim (see also discussion on google vim/ruby google group). It is easier to set it in vimrc, because you can change it without recompiling vim. You can set the path through the g:ruby_path variable in your .vimrc file. Don't copy and paste both, use the right one.

If you setup RBENV you have to use this one:

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

If you setup RVM you have to use this one:

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

You can also use the vim-rbenv plugin, which sets the path too.

For me the part on loading ruby specific functions in vim got 10 times faster.

If you are using jruby, than the start up slowliness can be even bigger. See examples for fixing it here.

like image 42
Fa11enAngel Avatar answered Oct 01 '22 07:10

Fa11enAngel