Искать выбор в vim

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

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

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

Ответ 1

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

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

Ответ 2

Основываясь на ответе arcanex, вот еще один способ сделать то, что вы хотите.

  • Загрузите текст, который хотите найти
  • q / p
  • Enter

Объяснение

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

(см. :help q/)

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

Выделите текст с помощью v и используйте / / для поиска.

Вы также можете вытащить выделенный текст с помощью y, а затем вставить с помощью p