Поиск выбора в vim - PullRequest
       26

Поиск выбора в vim

100 голосов
/ 12 декабря 2008

Я использую плагины vim и vim для visual studio при написании C ++. Часто мне хочется искать строку внутри функции, например, каждый вызов object->public_member.memberfunc().

Я знаю, что vim предлагает удобный способ поиска по одному слову, нажимая * и #, и он также может искать набранные строки с помощью команды вездесущей косой черты /. При попытке поиска всех экземпляров более длинной строки, подобной приведенной выше, для повторного ввода после / требуется некоторое время.

Есть ли способ поиска для выбора? Например, выделите v, затем скопируйте y, есть ли способ вставить после /? Есть ли более простой способ?

Ответы [ 5 ]

146 голосов
/ 12 декабря 2008

Проверьте этот совет Vim: Поиск визуально выделенного текста

Или вы можете просто восстановить выделенный текст с помощью y и перейти в режим поиска / , затем вы можете вставить последний восстановленный текст с помощью Ctrl + R 0

74 голосов
/ 04 мая 2012

Ответ

  1. Дайте текст, который вы хотите найти
  2. д / р
  3. Введите

Объяснение

q/ работает аналогично поиску ванили /, за исключением того, что вы находитесь в командном режиме, поэтому p фактически "вставляет" вместо ввода символа p. Таким образом, приведенное выше скопирует текст, который вы ищете, и вставит его в поиск.

Для более подробной информации введите :help q/

37 голосов
/ 16 декабря 2008

Используйте q / вместо просто / . (То же самое с q : ). Теперь вы можете редактировать VIM через вашу команду и историю поиска! (Попробуйте Ctrl-N и Ctrl-P иногда).

9 голосов
/ 07 февраля 2013

Я только что узнал (из превосходной книги Practical Vim ), что для этого есть плагин. Вы можете найти плагин на GitHub .

Плагин позволяет искать визуальный выбор с помощью * и #.

2 голосов
/ 13 января 2013

Вы можете визуально выделить текст и нажать * и # для поиска следующего вхождения ... Это будет работать так же, единственное предостережение:

Пробел в выборе соответствует любому пробелу при поиске (при поиске «hello world» также будет найден «hello» в конце строки, а «world» в начале следующей строки).

http://vim.wikia.com/wiki/Search_for_visually_selected_text

...