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