1

Наше программное обеспечение имеет много XML-файлов конфигурации. Vim окрашивает эти файлы, используя, например, /usr/share/vim/vim74/syntax/xml.vim . Но можем ли мы настроить раскраску только для этих файлов, а не для всех XML-файлов?

(Примером такой настройки может быть раскраска текста между <schmoo> и </schmoo> . Но этот вопрос не о том, как раскрасить, и не о XML. Я надеюсь на ответ, который одинаково хорошо применим к Python, YAML или сотням других форматов.)

Может ли другой файл в каталоге файлов .xml переопределить или расширить syntax/xml.vim? (Маловероятно: runtimepath не упоминает текущий каталог; похоже, ни autochdir ни getcwd() не помогают.)

Как насчет чего-либо в переменной окружения или в самом файле .xml (вверху или внизу; или встроенного типа jsbegin/jsend в выделении пользовательского синтаксиса Vim, включая синтаксис другого языка в указанном диапазоне)?

Или расширения должны идти в ~/.vim/after/syntax/xml.vim каждого пользователя (который используется для всех файлов .xml)? Это было бы неоптимально, но допустимо для расширений, достаточно специализированных, чтобы не сталкиваться с другими вещами (например, "schmoo" выше).

Связанный: Как я могу настроить подсветку синтаксиса для пользовательского языка в vim?

Ссылка: http://vimdoc.sourceforge.net/htmldoc/syntax.html#:syn-files

1 ответ1

2

Убедитесь, что моделин vim modeline . :set modeline? должен ответить modeline вместо nomodeline . При необходимости установите его в своем vimrc. (Проблемы безопасности уже устарели.)

В конкретный XML-файл включите эту строку: // vim: filetype=xmlWithSchmoos (Если не xml, замените // что начинает комментарий на этом языке.)

Создайте ~/.vim/syntax/xmlWithSchmoos.vim или /usr/share/vim/vim74/syntax/xmlWithSchmoos.vim , содержащий одну строку :so $VIMRUNTIME/syntax/xml.vim .

Добавьте разделы к xmlWithSchmoos.vim . Например, для красных тегов schmoo и что между ними, добавьте:

:syntax region xyzzy start=/<schmoo>/ end=/<\/schmoo>/
:highlight xyzzy ctermfg=red guifg=red

Конечно, переименуйте во что-то значимое заполнители schmoo , xml , xmlWithSchmoos и xyzzy .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .