3

Я пишу действительно длинную страницу для документирования компилятора, и я подумал, что было бы неплохо, если бы подсветка doxygen оставалась без изменений. Только если я выполняю поиск для дальнейшего продвижения по файлу, он теряет отслеживание, поскольку число строк в этом одном комментарии действительно велико (сейчас 1066).

Я обнаружил, что вы можете указать системе синхронизироваться с самого начала файла, используя:

:syntax sync fromstart

Который прекрасно работает. Теперь мне было интересно, могу ли я иметь это (или, возможно, определить количество строк?) в информации о моделине, чтобы каждый раз, когда я открывал файл, он работал как обычно.

Я также заметил minlines, но это также что-то специфическое для синтаксиса, и это не похоже, что я могу просто написать:

vim: minlines=10000

Это рассматривается как ошибка.

1 ответ1

2

Я считаю, что вы ищете то, что в Vimscript известно как autocmd для события BufEnter . Добавление следующей строки в ваш .vimrc будет выполнять желаемую команду для каждого файла, который вы открываете:

autocmd BufEnter * :syntax sync fromstart

Если вы хотите открывать только определенные расширения файлов, просто замените * выше более конкретным шаблоном для имени файла, например *.at или somesuch. Если вы по-прежнему теряете выделение, вы можете также запустить автокоманду для другого события, например, для перехода в режим вставки.

С этими парами автокоманд-событий можно многое сделать. Если вы хотите узнать о них побольше, я также рекомендую прочитать несколько параграфов этого онлайн-руководства. Для ясности или для тех, кто придет после вас, вот отличная визуальная стенография из этого руководства:

:autocmd BufNewFile * :write
         ^          ^ ^
         |          | |
         |          | The command to run.
         |          |
         |          A "pattern" to filter the event.
         |
         The "event" to watch for.

Выше приведен пример автокоманды, которая автоматически сохраняет файл всякий раз, когда вы вводите команду, такую как vim newfile из командной строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .