Ответ Vim довольно медленный

Если я открою файл, содержащий 5000 строк кода, и продолжу его ввод, я обнаружил, что мой vim стал очень медленным, он отображает мой ввод примерно через 1 секунду.

Это даже не улучшится после того, как я начну с --noplugin. Но после переключения моего файла .vimrc все снова становится хорошо. Файл .vimrc написан сам и после проверки на некоторое время, я все еще не могу найти ошибку. Я очистил все ключевые карты, но проблема все еще существует.

Итак, можете ли вы дать мне какие-либо рекомендации или рассказать мне, как отлаживать в vim? Я обнаружил, что есть опция отладки, но не могу получить, как работать.

Ответ 1

Вы можете использовать опцию --startuptime при запуске 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).

Выполните следующие шаги для диагностики проблемы:

  • введите vim --startuptime log.txt main.java в bash, чтобы запустить vim
  • введите :tabe log.txt в vim, чтобы просмотреть журнал.

Ответ 2

Причиной медленности часто является не установленный или неправильный набор ruby_path во время компиляции vim (см. также обсуждение в google vim/ruby ​​google group). Его проще установить в vimrc, потому что вы можете изменить его без перекомпиляции vim. Вы можете установить путь через переменную g: ruby_path в файле .vimrc. Не копируйте и не вставляйте оба, используйте правильный.

Если вы устанавливаете 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, который также устанавливает путь.

Для меня часть загрузки особых функций ruby ​​в vim была в 10 раз быстрее.

Если вы используете jruby, медленность запуска может быть еще больше. См. Примеры для его фиксации здесь.

Ответ 3

Что-то вроде этого обычно вызвано раскраской синтаксиса. Попробуйте :syntax off.

Ответ 4

Если вы используете vim 7.4,

поместите это в свой .vimrc

set regexpengine = 1

vim 7.4 имеет новый механизм регулярных выражений, который, кажется, не работает хорошо в некоторых ситуациях. Предыдущая версия vim 7.3 использовала старый движок (set regexpengine = 1).

"медленный ответ" из проблемы подсветки синтаксиса также влияет на файлы справки vim (и файл .vimrc).

Ответ 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