Это действительно старая запись, но я испытывал то же самое: иногда подсветка синтаксиса просто перестала работать при просмотре раздела javascript в файле .html
. Как упоминает ОП, быстрым обходным путем было прокрутить вверх, а затем магические вещи снова начали бы выделяться.
Сегодня я нашел основную проблему и хорошее решение. В Vim подсветка синтаксиса использует контекст для получения правильного выделения, где контекст определяется предыдущими строками. Можно указать, сколько строк перед текущей строкой будет использовано, введя :syntax sync minlines=200
. В этом случае он будет использовать до 200 предыдущих строк в качестве контекста. Можно использовать весь файл (который может быть медленным для длинных файлов), запустив :syntax sync fromstart
.
Как только я нашел это, я добавил эту строку в свой .vimrc
:
autocmd BufEnter *.html :syntax sync fromstart
Таким образом, .html
файлы будут использовать весь файл в качестве контекста. Таким образом, раздел JavaScript всегда будет выделен правильно, независимо от длины раздела JS. Надеюсь, это поможет кому-то еще!