Я использую VOoM (вероятно, не нужно много знать о нем, чтобы иметь возможность ответить на мой вопрос, я просто предоставляю эту информацию для контекста), и мне удалось написать себе пару пользовательских правил подсветки синтаксиса для конкретного контента ,
Во-первых, я использую модельную линию, чтобы сообщить vim, что определенный файл является схемой VOoM, у меня есть это в нижней части таких файлов:
/* vim: set syntax=myvoom : */
Во-вторых, у меня есть файл /home/user/.vim/after/syntax/myvoom.vim , вот фрагмент из него:
syn match voomTag "^tags:.*"
hi voomTag ctermfg=White ctermbg=Red guifg=White guibg=Red
В некоторых узлах контура у меня есть такие строки:
tags: foo, bar, baz
Чтобы упростить поиск, приведенное выше правило выделения синтаксиса просто отображает эти строки с пользовательским передним планом / фоном.
Это работает, как и ожидалось, с defaultcheme по умолчанию (:colorscheme в vim возвращает 'default').
Когда я хочу попробовать собственную цветовую схему (например, mustang ) и изменить ее, выполнив :colorscheme mustang, подсветка синтаксиса для моих строк тега теряется.
Я хотел бы понять, почему это происходит.
Кроме того, я хотел бы узнать, как автоматически синхронизировать эти пользовательские правила синтаксиса (которые являются общими, а не специфическими для определенной схемы цветов) при изменении схемы цветов. Нужно ли как-то явно проверять это в файле myvoom.vim? Например, посмотреть, какая цветовая схема активна и имеет собственные правила подсветки синтаксиса для разных цветовых схем, или есть лучший подход?