Подсветка синтаксиса Javascript в vim

кто-нибудь еще нашел подсветку синтаксиса VIM для Javascript неоптимальной? Я нахожу, что иногда мне нужно прокручивать, чтобы настроить подсветку синтаксиса, так как иногда она таинственно отбрасывает всю подсветку.

есть ли какие-либо обходные пути или способы, чтобы исправить это? Я использую vim 7.1.

5 ответов


вы можете попробовать это улучшен синтаксис Javascript highlighter а не тот, который поставляется с VIMRUNTIME.


Ну, я изменил синтаксис Javascript Yi Zhao, и добавлена поддержка ключевых слов Ajax, также выделите методы DOM и другие.

вот он, он далек от совершенства, поскольку я все еще новичок в Vim, но пока у него есть работа для меня. Мой Синтаксис Javascript. Если вы можете исправить, добавьте функции, пожалуйста.

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

следуйте новой версии файла синтаксиса javascript в github, поскольку больше не требуется изменять текущую colorscheme.


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

Syntax synchronization (": help syn-sync") управляет тем, как vim отслеживает и обновляет свой синтаксический анализ кода для раскраски, чтобы он мог начать рисовать в любом месте файла.

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

:syn sync fromstart

Я предлагаю прочитать документацию под

:help syn-sync

или просто проверить

:help syntax

и найдите раздел о синхронизации.

принять обоснованное решение среди четырех основных вариантов. Я поддерживаю сопоставления с функциональными клавишами для переключения между режимами" fromstart "и" ccomment " и просто для очистки настроек синхронизации.


это действительно старый пост, но я испытывал то же самое: иногда подсветка синтаксиса просто перестает работать при просмотре раздела javascript в . Как упоминает OP, быстрым обходным путем было прокрутка вверх, а затем волшебным образом вещи снова начнут выделяться.

сегодня я нашел основную проблему и хорошее решение. В Vim подсветка синтаксиса использует контекст для получения правильной подсветки, где контекст определяется предыдущим русло. Можно указать, сколько строк до текущей строки используется путем выдачи :syntax sync minlines=200. В этом случае, он будет использовать до 200 предыдущих строк в контексте. Можно использовать весь файл (который может быть медленным для больших файлов), запустив :syntax sync fromstart.

как только я нашел это, я добавил эту строку в свой .vimrc:

autocmd BufEnter *.html :syntax sync fromstart

таким образом, .html файлы будут использовать весь файл в качестве контекста. Таким образом, раздел javascript всегда будет правильно выделен, независимо от как долго раздел JS. Надеюсь, это поможет кому-то еще!


для быстрого и грязного исправления иногда я просто прокручиваю вверх и вниз, а подсветка корректируется. Ctrl+L для экрана redraw также может исправить это.