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

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

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

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

6 ответов

Решение

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

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

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

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

объяснение

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

(увидеть :help q/ )

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

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

Плагин позволяет искать визуальный выбор с * а также #,

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

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

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

--> если вы хотите выделить текстовые вхождения в gvim

  1. Выделите текст и скопируйте
  2. затем вставьте выделенный текст (Примечание: это не работает в режиме вставки)
Другие вопросы по тегам