Vim прокручивает очень медленно, когда строка слишком длинная


23

Я бы никогда не подумал, что Вим будет таким медленным. Все, что у меня есть, это следующая длинная строка:

введите описание изображения здесь
(Нажмите на изображение, чтобы увеличить)

Я запускаю Vim (MacVim) под Mac OS X с приложением терминала. Вот мой vimrc . Я надеюсь, что это не имеет ничего общего с некоторыми из моих плагинов. Если я разбью большую строку на изображении, все снова будет работать быстро.


+1. Спасибо за картинку! Эта линия сама по себе очень длинная. Помните, что текстовые редакторы CLI использовали для ограничения строк до 255 символов еще во времена DOS. Подсветка синтаксиса требует, чтобы отслеживались все открытые и закрываемые теги HTML, а также каждая двойная кавычка, а затем каждая переменная. И я уверен, что каждый раз, когда вы вкладываете другой тег в тег HREF, редактор должен выяснить, что это значит. Я видел, что в emacs есть проблемы с выделением текста, с которыми у VI нет проблем: вы также можете выбирать редакторы по требованию, как мы делаем с chrome, FF и печально известным браузером IE.
Vlueboy

Ответы:


23

Это известная проблема с Vim и очень длинными строками. Я вижу три решения:

  1. Отключите подсветку синтаксиса с помощью :syntax off.
  2. Ограничьте подсветку синтаксиса :set synmaxcol=200или другим значением.
  3. Разбейте свою длинную очередь на более мелкие куски с помощью :s/\s<a/<C-v><Enter><a.

В этом конкретном случае я бы рекомендовал решение 3.


36

попробуйте следующее:

" Syntax coloring lines that are too long just slows down the world
set synmaxcol=128

иначе я рекомендую ускорить vim:

set ttyfast " u got a fast terminal
set ttyscroll=3
set lazyredraw " to avoid scrolling problems

2
+1. Это будет полезно, даже если он не был выбран «лучшим» ответом.
Vlueboy

2
Wow synmaxcolсделал такую ​​разницу при написании сообщений в блоге в уценке.
Кит Смайли

lazyredrawсделал трюк для меня. Даже без каких-либо плагинов прокрутка определенных файлов была мучительно медленной. Так было и в vim, и в gvim. Профилирование ничего не показывало.
Путаница

set synmaxcol=4096полностью решил проблему разбивки подсветки синтаксиса на длинные строки :)
Джей Тейлор

1

Я думаю, что вы, кажется, установили курсор. Я обнаружил, что раньше это был самый большой вклад в лаг в моем vim. Вы можете попробовать отключить это.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.