2

Много раз, работая над кодом, я ищу вхождения переменных с похожими именами. Для примера, найдите все соответствия var1 и var2 как:

/\<var1\>\|\<var2\>

Теперь мне очень нравится функция поиска по подсветке в Vim, поскольку после поиска все соответствующие экземпляры появляются желтым цветом.

Есть ли способ присвоить разные цвета различным терминам в строке поиска? То есть все совпадения с var1 должны быть желтыми, а с var2 - зелеными?

2 ответа2

2

Встроенный поиск не может этого сделать, но есть плагины, которые позволяют использовать разные цвета, например, мой собственный плагин Mark. (На странице плагинов есть ссылки на альтернативные плагины.) Большинство из них используют matchadd() , гарантируют, что это применяется глобально ко всем окнам, и предоставляют интерфейс поиска, подобный через сопоставления и команды.

2

С опцией 'hlsearch' нет, все они должны отображаться в одном цвете. Однако вместо этого вы можете использовать функцию :match . Например:

:match TODO /var1/
:2match Type /var2/
:3match Comment /var3/

Это, конечно, более громоздко, чем прямое сопоставление 'hlsearch' , потому что оно требует, чтобы вы знали, какие синтаксические группы раскраски уже определены, или определяете свои собственные. Кроме того, вы можете сделать до трех отдельных матчей таким образом. Если вам нужно больше, вам придется использовать matchadd() .

Увидеть:

:help :match
:help :highlight
:help highlight-groups
:help matchadd()

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