Изменить выделение в зависимости от того, ищу я или ищу и заменяю - PullRequest
0 голосов
/ 20 июня 2020

Иногда, когда я выполняю операцию поиска и замены, шаблон поиска выделяется миллион раз. Например, если я иногда, но не всегда, хочу изменить x на y на :g/x/s//y/gc, в моем документе будут выделены сотни x, и будет трудно увидеть, где находится курсор. В отчаянных попытках решить эту проблему у меня есть следующие настройки в vimr c:

hi IncSearch ctermfg=blue    ctermbg=green  cterm=bold,underline
hi Search    ctermfg=black  ctermbg=yellow    cterm=NONE

Но в текущем примере это приведет к сотням выделенных желтым x, и я нахожу это очень сложно найти x с синим фоном среди желтых. Я исправил это очень неэффективным способом, создав сопоставления

map ;h0      :hi Search    ctermfg=NONE   ctermbg=NONE    <CR>
map ;h1      :hi Search    ctermfg=black  ctermbg=yellow  <CR>

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

Очевидно, это какой ужас. Если бы я знал, как это сделать, я бы создал альтернативу :g/x/s//y/gc, например :G/x/s//y/gc, которая была бы такой же, но сначала реализовала бы мое сопоставление ;h0, а затем реализовала бы свое сопоставление ;h1. Не мог бы кто-нибудь объяснить, как я бы сконструировал такую ​​вещь? Что-то еще помогло бы, если бы я мог указать IncSearch, чтобы курсор мигал над объектом, который я сейчас рассматриваю для изменения. Спасибо!

...