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