Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 2

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

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

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

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

Ответ 3

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

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

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

:syn sync fromstart

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

:help syn-sync

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

:help syntax

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

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

Ответ 4

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

Ответ 5

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

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

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

autocmd BufEnter *.html :syntax sync fromstart

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