Иногда я хочу переопределить синтаксис по умолчанию, выделяющий цвета и стили, с моими собственными предпочтениями.
Я думаю, что наиболее подходящий способ сделать это - создать собственную цветовую схему. Однако у меня есть пара вопросов.
Если я хочу установить выделение для определенной группы синтаксиса на определенном языке, это относится к моей схеме цветов или было бы лучше разместить ее
after/syntax/[filetype].vim
?highlight jsAssignExpIdent cterm=bold gui=bold
Кажется немного странным помещать непонятные языковые правила в цветовую схему, поскольку они будут загружаться на любом языке, на котором я работаю, но еще хуже размещать правила подсветки в файле синтаксиса.
Иногда я создаю новые правила синтаксиса для конкретного языка, в
after/syntax/[filetype].vim
. Если другие пользователи захотят использовать эти расширения, было бы целесообразно предоставить там правила подсветки по умолчанию, которые ссылаются на общие группы подсветки по умолчанию? Если другой пользователь хочет переопределить этот цвет выделения, как он должен это сделать?::::: after/syntax/asm.vim ::::: syn match asmHexNumber /\(0x\|\$\)[0-9A-Fa-f]\+/ highlight default link asmHexNumber Number
источник
highlight link ...
добавлю в файл синтаксиса команды, которые будут перезаписывать настройки из схемы цветов при каждой загрузке файла с этим типом файла. Должен ли я делать это толькоhighlight link ...
после проверки, что для этого имени не существует правила выделения?highlight link
в схеме цветов может быть позже перезаписаноhighlight link
в файле синтаксиса. Чтобы избежать этого, вместо ссылки можно использовать реальные аргументы (ctermbg, guifg, ...).highlight link ...
в своем синтаксическом скрипте и позволить своим пользователям переопределять его, если они хотят.highlight link ...
в своей схеме цветов, то файл синтаксиса может позже сбросить его со своим собственнымhighlight link ...
. Теперь я вижу, что хорошие синтаксические файлы избегают этого с помощьюhighlight default link ...
. Вероятно, это должно быть исправлениемasmHexNumber
правила в моем вопросе.