Подсветка синтаксиса 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 также может исправить это.