Что я могу сделать, чтобы сохранить syntax on
при использовании Vim?
Как только я открываю что-то существенное, через некоторое время редактирование становится практически невозможным. Каждое нажатие вызывает задержку. Если я выключу подсветку синтаксиса или перезапущу vim - все снова хорошо.
Я synmaxcol
установил значение 120. Пример файла ruby имеет длину всего 59 строк и не превышает 80 символов.
Я использую vim-ruby
и vim-rails
.
Проблема в том, что задержка накапливается со временем. Когда я открываю файл с нуля, это нормально. Через некоторое время он становится все медленнее и медленнее.
syntax-highlighting
performance
firedev
источник
источник
vim -Nu NONE -c 'syntax on'
? Следовали ли вы советам по отладке этого поста-u NONE
поэтому он должен быть какой-то плагин. Угадай, что ответ на большинство вопросов - «отключи плагины, пока не найдешь виновника» :(Ответы:
В последних версиях Vim есть
:syntime
команда для устранения проблем, связанных с медленной подсветкой синтаксиса, путем создания отчета о том, сколько времени требуется каждой синтаксической группе для сопоставления. Это очень полезно и позволяет быстро найти виновника; Единственным недостатком является то, что вам нужна (обычно «ОГРОМНАЯ») сборка Vim с включенным профилированием.:help :syntime
дает хорошие инструкции, как его использовать.В качестве альтернативы вы можете попробовать удалить отдельные синтаксические сценарии из
~/.vim/syntax/
и$VIMRUNTIME/syntax/
(в соответствии с текущим'filetype'
), а затем продолжить детализацию, удалив части определений синтаксиса внутри сценария.источник
TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN 0.129674 247 182 0.002365 0.000525 rubyMethodNameTag \C\<\%(roi\|paginate\|admin_index_attributes\|facilities\|manager\|net_price?\ ....
- это явно из другой папки. Отключить теги?0.121880 2078 54 0.002260 0.000059 rubySymbol []})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@=
- Что я могу с этим поделать?:set regexpengine=1
(лучше всего в новом экземпляре Vim, прежде чем открывать файл Ruby).Еще одним типичным узким местом в синтаксической подсветке vim является сворачивание. Редактирование может стать очень медленным, если сгиб содержит много элементов синтаксиса (что в основном означает, что он проходит через много строк), потому что vim обновит весь синтаксис для каждого вставленного символа.
Если это то, что вы испытываете, то я предлагаю использовать плагин FastFold . Этот плагин идентифицирует синтаксические сгибы и заменяет их на ручные сгибы, делая подсветку синтаксиса vim намного быстрее.
источник
Вот что я сделал в конце:
xolox/vim-easytags
xolox/vim-misc
kien/ctrlp
d11wtq/ctrlp_bdelete
иtacahiroy/ctrlp-funky
сjunegunn/fzf
regexpengine=1
Сейчас Вим гладкий, как масло, но у меня больше нет меток. Вздох...
источник
:help tag-commands
чтобы перейти к метке. Я считаю, что ctags очень важен при работе с Vim. Это делает навигацию супер просто, и вы можете даже автозаполнение с:help i_Ctrl-x_Ctrl-]
!