Включение синтаксиса и свертывания синтаксиса в vim с большим C-файлом замедляет завершение - PullRequest
4 голосов
/ 27 мая 2010

Когда у меня есть синтаксис в большом файле C (около 8000) строк завершение ctrl-p и ctrl-n очень медленные (более 20). Когда я выключаю синтаксис, завершение занимает меньше секунды.

Я придумал минимальный способ воспроизведения этого поведения. Используйте пустую папку .vim и создайте .vimrc только с этими строками:

set syntax on
set foldmethod=syntax

Когда вы открываете большой файл C, завершение (и даже общее редактирование) становится очень медленным.

Edit:

Такое поведение было связано с тем, что я использовал бета-версию. Я не уверен, должен ли я вообще удалить этот вопрос или оставить его так, чтобы у других была такая же проблема, чтобы иметь некоторое представление об этом.

Ответы [ 2 ]

3 голосов
/ 08 ноября 2014

Vim иногда медленно (особенно для незавершенности) в больших файлах из-за foldmethod=syntax

От: help todo:

  • Медленная комбинация свертки и подсветки синтаксиса PHP. Скрипт для воспроизведите это. Вызывается "синтаксической синхронизацией с самого начала" в сочетании с патчем 7.2.274. (Кристиан Брабандт, 27 мая 2010 г.) Обычно складывается с 'foldmethod', установленный в 'синтаксис', работает медленно. Выполните профилирование, чтобы выяснить, почему.

Плагин FastFold делает так, чтобы сгибы пересчитывались только при сохранении (поэтому вы всегда используете foldmethod=manual - но сгибы рассчитываются с foldmethod=syntax или с тем, что вы установили ранее).

Это решило проблему для меня. Теперь я могу использовать завершение всей строки в моем файле C ++ с 5000 строками, и это мгновенно и быстро, вместо того, чтобы занимать минуты и не отвечать.

2 голосов
/ 27 мая 2010

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

:set complete=.

, который завершит работу, используя только текущий файл.

Узнайте больше о полных опциях с

:help 'complete'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...