Подсветка синтаксиса JavaScript в vim - PullRequest
48 голосов
/ 12 сентября 2008

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

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

Ответы [ 5 ]

30 голосов
/ 12 сентября 2008

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

15 голосов
/ 13 апреля 2011

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

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

ОБНОВЛЕНИЕ: Я забыл, что эти синтаксические выделения отображаются только в том случае, если вы включили их в свою собственную цветовую схему, как я сделал в моей Nazca цветовой схеме. Я проверю, смогу ли я добавить эти строки в мой измененный файл синтаксиса.

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

12 голосов
/ 12 сентября 2008

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

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

Настройки по умолчанию не всегда работают для меня, поэтому иногда я выдаю

:syn sync fromstart

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

:help syn-sync

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

:help syntax

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

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

4 голосов
/ 01 декабря 2016

Это действительно старая запись, но я испытывал то же самое: иногда подсветка синтаксиса просто перестала работать при просмотре раздела javascript в файле .html. Как упоминает ОП, быстрым обходным путем было прокрутить вверх, а затем магические вещи снова начали бы выделяться.

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

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

autocmd BufEnter *.html :syntax sync fromstart

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

3 голосов
/ 12 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...