Ответ 1
Проверьте этот совет Vim: Поиск визуально выбранного текста
Или вы можете просто вынуть выделенный текст с помощью y и перейти в режим поиска /, после чего вы можете вставить последний дернутый текст с помощью Ctrl + R 0
Я использую vim и vim плагины для визуальной студии при написании С++. Часто я нахожусь в поиске строки внутри функции, например, каждый вызов object->public_member.memberfunc()
.
Я знаю, что vim предлагает удобный способ поиска одного слова, нажимая *
и #
, а также может искать типизированные строки с помощью вездесущей косой черты /
. При попытке поиска всех экземпляров более длинной строки, подобной приведенной выше, для повторного ввода после /
требуется некоторое время.
Есть ли способ поиска выбора? Например, выделите с помощью v
, затем скопируйте с помощью y
, есть ли способ вставить после /
? Есть ли более простой ярлык?
Проверьте этот совет Vim: Поиск визуально выбранного текста
Или вы можете просто вынуть выделенный текст с помощью y и перейти в режим поиска /, после чего вы можете вставить последний дернутый текст с помощью Ctrl + R 0
Основываясь на ответе arcanex, вот еще один способ сделать то, что вы хотите.
Объяснение
q/
работает аналогично поиску ванили /
, за исключением того, что вы находитесь в командном режиме, поэтому p
фактически "вставляет" вместо ввода символа p
. Таким образом, вышесказанное выдержит символы, которые вы ищете, затем вставьте их в поиск.
(см. :help q/
)
Используйте q / вместо /. (То же самое с q :). Теперь вы можете редактировать VIM через свою команду и историю поиска! (Попробуйте Ctrl-N и Ctrl-P когда-нибудь).
Я только что узнал (через отличную книгу Practical Vim), что для этого есть плагин. Вы можете найти плагин на GitHub.
Плагин позволяет искать визуальный выбор с помощью *
и #
.
Вы можете на самом деле выбрать текст визуально и нажать * и #, чтобы найти следующее вхождение... Он будет работать так же, единственное предостережение в том, что:
Пробел в выборе соответствует любому пробелу, при поиске (поиск "hello world" также найдет "привет" в конце строки с "миром" в начале следующей строки).
Выделите текст с помощью v и используйте / / для поиска.
Вы также можете вытащить выделенный текст с помощью y, а затем вставить с помощью p