длинная многострочная подсветка gvim - PullRequest
14 голосов
/ 13 июля 2011

Я широко использую многострочные строки документации в своем исходном коде на python, чтобы включать в себя тесты документов. К сожалению, vim / gvim, кажется, испытывает трудности с подсветкой синтаксиса, иногда теряя свое место и забывая, что он находится в середине строкового литерала, а подсветка «переворачивается» со строки на источник и источник на строку.

Я могу прокрутить вверх и снова вниз, и vim обычно решает проблему, но иногда требуется несколько попыток.

Помимо сокращения моих строк документации, есть ли способ помочь vim сохранить порядок подсветки этих длинных литералов?

Ответы [ 2 ]

18 голосов
/ 13 июля 2011

:syntax syn контролирует, как Vim синхронизирует состояние синтаксиса, которое должно применяться в определенной точке текста (:help syn-sync).Для наиболее точной синхронизации (но это замедлит vim), попробуйте:

autocmd BufEnter * :syntax sync fromstart

Или, если вы хотите синхронизировать вручную, когда вы заметите, что это неправильно, попробуйте эту команду (вы можете сопоставить ее с сочетанием клавиш):

:syntax sync fromstart

Вы также можете найти minlines полезным.С :help syn-sync

Если задан аргумент "minlines = {N}", анализ всегда начинается, по крайней мере, на столько строк назад.Это может быть использовано, если синтаксический анализ может занять несколько строк, прежде чем он будет корректным, или если невозможно использовать синхронизацию.

Поэтому размещение этого в вашем .vimrc может помочь вам:

syntax sync minlines=500

Редактировать: нашел эту страницу, на которой есть все, что вам нужно: http://vim.wikia.com/wiki/Fix_syntax_highlighting

2 голосов
/ 14 октября 2011

Вы, вероятно, не хотите синхронизировать с самого начала для всех типов кода, который вы редактируете, только HTML.Если это так, добавьте это в ваш vimrc:

autocmd FileType html autocmd BufEnter * :syntax sync fromstart
...