Как изменить определенный цвет в vim?

Вопрос или проблема

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

Вот как это выглядит в файле Java:

s

Единственный раз, когда я вижу этот цвет, это когда я редактирую файл на Java, C или C++ (я уверен, что он также появляется для файлов на других языках). Все ключевые слова, связанные с классами, объектами или переменными, отображаются этим цветом (см. изображение, приведенное выше).

Есть ли способ выяснить, где хранится значение этого цвета, и изменить его? Если это имеет значение, я использую vim.

Как токены выделяются в vim, зависит от фактической цветовой схемы vim и от текущего языка.

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

Во-первых, вам нужно определить, к какой синтаксической группе относится токен, который вы хотите изменить; откройте файл на вашем целевом языке с помощью vim, установите курсор на любой символ токена (в данном случае, например, на p / u / b / … в public) и выполните:

:echo synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name')

Это выведет имя синтаксической группы текущего токена (в данном случае: Type).

Также вам нужно будет выяснить тип файла вашего целевого языка:

:set filetype?

Это выведет текущий тип файла текущего файла (в данном случае: java).

Затем вам нужно будет сказать vim, чтобы выделить синтаксическую группу Type в файлах java с использованием другого цвета.

Сначала создайте каталог для хранения переопределений синтаксических правил:

mkdir -p ~/.vim/after/syntax

Выберите цвет, совместимый с 256-цветными терминалами, затем создайте файл с таким же именем, как тип файла + .vim (в данном случае java.vim):

vim ~/.vim/after/syntax/java.vim

Наконец, добавьте эту строку в файл, заменив 196 на выбранный вами цвет:

highlight Type ctermfg=196

Вот результат при переопределении имен sub в Perl (обратите внимание, как токен foo меняется с cyan на red); до:

s1

после:

s2

Ответ или решение

Чтобы изменить определённый цвет в Vim, можно воспользоваться настройкой синтаксиса для конкретного языка программирования. Вот пошаговое руководство, как это сделать.

Шаг 1: Узнайте, к какой группе синтаксиса относится нужный вам токен

Откройте файл на нужном языке (например, Java) в Vim, переместите курсор на токен (например, на слово public), и выполните следующую команду:

:echo synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name')

Эта команда выведет имя синтаксической группы для текущего токена. В вашем случае это может быть, например, Type.

Шаг 2: Узнайте, какой тип файла обрабатывается

Чтобы узнать, какой тип файла открыт в данный момент, выполните:

:set filetype?

Это позволит вам убедиться, что текущий файл обрабатывается как Java (или другой язык).

Шаг 3: Создайте директиву для переопределения синтаксисов

Создайте директорию для хранения переопределений синтаксических правил:

mkdir -p ~/.vim/after/syntax

Затем создайте файл с именем, соответствующим типу файла, который вы хотите настроить. Например, для Java:

vim ~/.vim/after/syntax/java.vim

Шаг 4: Настройте требуемую цветовую схему

В открывшемся файле добавьте строку, которая изменяет цвет для синтаксической группы, полученной на первом шаге. Например, если вы хотите изменить цвет для группы Type, добавьте:

highlight Type ctermfg=196

Здесь 196 — это номер цвета из таблицы 256 цветов. Вы можете выбрать любой другой цвет, основываясь на этой таблице цветов.

Пример

Если вы переопределили цвет синтаксиса для группы Type, исходный цвет текста для токенов такого типа изменится. Чтобы проверить изменения, откройте файл Java и посмотрите, как отобразились токены.

Заключение

Теперь вы знаете, как изменить цвет определённых токенов в Vim для нужного языка. Эти изменения будут применены только для вашего пользователя и не повлияют на других пользователей или глобальные настройки Vim. Это позволяет гибко настраивать ваше рабочее окружение в соответствии с личными предпочтениями.

Оцените материал
Добавить комментарий

Капча загружается...