Как мне искать выбранный текст? - PullRequest
16 голосов
/ 21 декабря 2011

Как мне искать выбранную (с v и y) строку?Я обычно ищу с /, но не могу вставить выбранную строку после /.

Ответы [ 4 ]

20 голосов
/ 21 декабря 2011

В режиме вставки вы можете использовать CTRL-R для вставки содержимого регистров Vim.По умолчанию скопированный текст помещается в безымянный регистр ", поэтому для вставки этого текста вы должны набрать <C-R>" в режиме вставки.В поисковом запросе используется Режим командной строки , который имеет свой собственный CTRL-R , который работает почти так же, как в режиме вставки.

Так что, если я только что дернултекст foo, набрав /<C-R>" будет искать текст foo, как только я нажму ввод.

2 голосов
/ 21 декабря 2011
:set hls
:vmap * y:let @/ = @"<CR>
  • set hls (поиск с подсветкой)
  • v => hjkl (выберите что-либо)
  • нажмите *, скопируйте выбранный текст вreg "
  • установить содержимое reg / как "
  • нажмите n / N для навигации
2 голосов
/ 21 декабря 2011

Это отображение определено в моем 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, затем выделите то, что вы хотите найти, и нажмите *, а не y.

Конечно, вы можете сопоставить # для поиска в обратном направлении (точно так же, за исключением того, что v:searchforward должно быть установлено в 0.

0 голосов
/ 23 декабря 2011

Если вас интересует только поиск, вы можете использовать чит метод, который я использую. Наберите слово с помощью v или y + w , затем введите команду

:%s//XYZ/gc 

Будет выполнен поиск последнего искомого слова. Затем, когда вы найдете его, он попросит подтвердить замену на XYZ, и все, что вам нужно сделать, это нажать q, чтобы выйти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...