Как искать выбранную строку (v и y)? Обычно я ищу с /, но я не могу вставить выделенную строку после /.
Как найти выделенный текст?
Ответ 1
В режиме вставки вы можете использовать CTRL-R для вставки содержимого регистров Vim. По умолчанию скопированный текст помещается в безымянный регистр ", поэтому для вставки этого текста вы вводите <C-R>" в режиме вставки. В приглашении поиска используется режим командной строки, который имеет свои собственные
CTRL-R, который почти идентичен работе в режиме Insert.
Итак, если я просто дернул текст foo, набрав /<C-R>", он будет искать текст foo после нажатия клавиши ввода.
Ответ 2
У меня есть это сопоставление, определенное в моем vimrc, оно отображает *, чтобы определить шаблон поиска как то, что в настоящее время выделено (экранирование всех потенциальных опасных символов и преобразование пробела в то, что выделено для любой последовательности пробелов)
xnoremap * :<C-U>let old_reg=getreg('"')|let old_regtype=getregtype('"')<CR>gvy/<C-R><C-R>=substitute(substitute(escape(@", '/\.*$^~['), '\s\+', '\\s\\+', 'g'), '\_s\+', '\\_s*', 'g')<CR><CR>gV:call setreg('"', old_reg, old_regtype)<CR>:let v:searchforward=1<CR>
Чтобы использовать его, запустите визуальный режим с помощью v, а затем выделите, что вы хотите найти, и нажмите * not y.
Конечно, вы можете отобразить # для поиска назад (точно так же, за исключением того, что v:searchforward должно быть установлено на 0.
Ответ 3
:set hls
:vmap * y:let @/ = @"<CR>
-
set hls(поиск по свету) -
v= >hjkl(выберите что-то) - нажмите
*, скопируйте выделенный текст в реестр" - установить содержимое reg
/как" - нажмите
n/nдля навигации по
Ответ 4
Если вам интересны только поисковые запросы, вы можете использовать метод читов, который я использую. Янь слово через v или y + w, затем выполните команду
:%s//XYZ/gc
Это приведет к поиску последнего искомого слова. Затем, когда вы его найдете, он попросит подтверждение заменить на XYZ, и все, что вам нужно сделать, это нажать q, чтобы выйти.