Предположим, что поиск vim находит 5 совпадений в моем файле. Я вижу, что все 5 из этих совпадений выделены желтым цветом. Я переключаюсь между ними, нажимая n
. Но, когда мой курсор перемещается от одного совпадения к другому, все выделения остаются одного цвета. Это затрудняет определение того, на каком совпадении находится мой курсор. Есть ли способ указать vim выделять все совпадения одним цветом, а при посещении совпадения с помощью n
, окрашивать текущее просмотренное совпадение в другой цвет?
решение1
Нет встроенной опции, которая позволяет выделить текущий по-другому. При создании поиска у вас есть такая 'incsearch'
возможность, но это все.
Вы можете использовать другую подсветку поверх подсветки поиска, например :match
, с помощью специального \%#
атома регулярного выражения, который ограничивает совпадение текущей позицией курсора:
:execute 'match IncSearch /\%#' . @/ . '/'
Проблема в том, что подсветку нужно адаптировать всякий раз, когда @/
меняется текущий шаблон поиска ( ) (о, и он не обрабатывает смещения поиска, такие как /foo/e-1
). Поэтому вам придется перезаписать все команды, связанные с поиском ( /
, *
, и т. д.), чтобы подключить :match
к ним команду. Я бы не рекомендовал этого.