VIM: объединить два поиска - PullRequest
3 голосов
/ 07 июня 2011

Часто я выполняю поиск чего-либо (используя горячие клавиши, команду меню или командную строку), и после этого я хочу сохранить первый поиск и добавить другой поиск ..

pe
- Сначала я ищу двойнойпробелы в моем тексте.
- Тогда я хочу сохранить совпадения и добавить поиск по всем концам строк

Есть ли способ объединить 2 поиска?

1) поиск 1
2) нажмите F9 или другую клавишу: ADD
3) поиск 2

Ответы [ 3 ]

2 голосов
/ 07 июня 2011

Вы можете просто нажать Esc , затем \ , затем Стрелка вверх , чтобы прокрутить назад результаты поиска и отредактировать предыдущий поиск, чтобы включить дополнительный термин.Таким образом, первая Стрелка вверх покажет ваш последний поиск.

Пример

Вы хотели найти текст _pipe(, поэтому вы набрали: Esc /_pipe(

Теперь вы хотите добавить к этому поиску и решить, что наряду с _pipe( было бы полезно включить только те, которые имеют аргумент option, поэтомуВы вводите: Esc / Стрелка вверх

и затем редактируете свой предыдущий поиск, чтобы прочитать /_pipe(.*option.*)

Thisтеперь использует новый поиск, который обновляется по сравнению с предыдущим поиском.

2 голосов
/ 07 июня 2011

В обычном режиме вы можете использовать последний регистр поиска ("/) для вызова вашего последнего шаблона поиска:

/<C-r>/\|\(\[ ]\+$\)

Разбивка:

  • <C-r> - это CTRL + r , это вызовет ", поэтому вы можете выбрать регистр,
  • / для выбора регистра поиска,
  • \| чтобы добавить другой шаблон в ваш поиск (OR),
  • \(\[ ]\+$\) поиск и группировка конечных пробелов.
2 голосов
/ 07 июня 2011

Вы можете сделать это:

exe '/\('.histget('/',-1).'\)\|\('.newSearch.'\)'

где newSearch - ваша новая строка поиска. Хороший способ сделать это - просто выполнить поиск отдельно, чтобы убедиться, что вы получите то, что вы хотите, а затем объединить их с:

exe '/\('.histget('/',-1).'\)\|\('.histget('/',-2).'\)'

Вы можете сделать это несколько раз, чтобы построить довольно длинные строки поиска, так как он создает новую строку поиска в истории.

Это просто или поиск вместе, который не совсем совпадает с тем, что вы просили (так как он не совпадает). Он просто объединяет критерии поиска - но я подозреваю, что вы имели в виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...