Gvim неправильно выделяет синтаксис, как это исправить? - PullRequest
2 голосов
/ 18 мая 2011

У меня есть HTML-файл, который содержит как HTML, так и JavaScript. Когда я сложил некоторые фрагменты кода, подсветка синтаксиса не сработала. Снимок экрана следующим образом: enter image description here

Line79 Функция setColor (цвет) выделена неправильно. Есть ли способ это исправить?

Кстати, я использую GVIM 7.2 в Windows 7.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 18 мая 2011

Когда Vim открывает html-файл, он применяет html-подсветку по всему файлу. Если у вас есть отдельный язык в html-файле, вам нужно определить синтаксические области, чтобы Vim знал, что части файла должны быть выделены иначе, чем язык, определяемый расширением файла. Я описал, как это сделать в ответе на вопрос SO: В VIM, как я могу смешать правила синтаксиса / иденту jinja и javascript в одном файле?

Также просмотрите документы на :h syn-include.

Отступы аналогичны. То есть Vim будет применять правила отступа html ко всему в файле, если вы не скажете ему сделать отступ в области Javascript по-другому.

ПРИМЕЧАНИЕ. Может быть, поскольку html со встроенным javascript настолько распространен, файлы синтаксиса html могут по умолчанию поддерживать встроенный javascript. Подсказка, приведенная ниже, предлагает использовать :set filetype htmlm4, чтобы получить правильное выделение, хотя комментатор говорит, что в этом нет необходимости: http://vim.wikia.com/wiki/Syntax_highlighting_for_HTML_with_embedded_Javascript

2 голосов
/ 18 мая 2011

:syn sync fromstart

(см. Также help syn-sync-first)

1 голос
/ 18 мая 2011

Возможно, у вас есть строка в функции mapInit (), длина которой превышает параметр 'synmaxcol' в vim. Обратите внимание, что подсветка некорректна и в строке 77 (закрывающая скобка).Справка vim:

Максимальный столбец для поиска элементов синтаксиса.В длинных строках текст после этого столбца не выделяется, а последующие строки могут быть выделены неправильно, так как состояние синтаксиса очищено.Это помогает избежать очень медленной перерисовки для XML-файла, который состоит из одной длинной строки.

...