Как мне найти слово после его выбора в визуальном режиме в Vim? - PullRequest
0 голосов
/ 29 июля 2011

Предположим, я выбрал слово в визуальном режиме. Теперь я хочу найти это слово в документе.

Как я могу это сделать?

Заранее спасибо.

Ответы [ 4 ]

7 голосов
/ 29 июля 2011

Если это всего лишь одно слово, вам даже не нужно его выбирать.Просто поместите курсор на слово и нажмите * (или # для поиска в обратном направлении).Обратите внимание, что этот поиск будет соответствовать только целому слову.Чтобы поиск foo соответствовал foobar, используйте g * или g # .

3 голосов
/ 29 июля 2011

Нажмите y (после этого вы выйдете из визуального режима), затем нажмите / Ctrl + r, затем «end end enter».

Вы можете использовать его для привязки // для этого действия:

:vmap // y/<C-R>"<CR>

Если вы выбираете специальные символы, вам лучше использовать это

:vmap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>
2 голосов
/ 29 июля 2011

Я рекомендую https://github.com/thinca/vim-visualstar, потому что вы можете использовать * для поиска, но с некоторыми вариантами выбора вы можете столкнуться с проблемами.

0 голосов
/ 29 июля 2011

У меня есть это в моем ~/.vimrc:

" Search for visually-selected text, forwards or backwards.
vnoremap <silent> * :<C-U>
  \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
  \gvy/<C-R><C-R>=substitute(
  \escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
  \gV:call setreg('"', old_reg, old_regtype)<CR>
vnoremap <silent> # :<C-U>
  \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
  \gvy?<C-R><C-R>=substitute(
  \escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
  \gV:call setreg('"', old_reg, old_regtype)<CR>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...