Як виконати два пошуки одночасно у Vim?


5

У Vim я часто виявляю один пошук, одразу ж інший пошук. Мені цікаво, чи можу я поєднати два пошуки в одну команду.

Наприклад, якщо я хочу знайти перший екземпляр foobarзмінної у межах назви функції transmogrify, я б ввів:

/def transmogrify
/foobar

Або якщо я перебуваю у файлі журналу і хочу знайти помилку, яка сталася після конкретної дати:

/2012-07-26
/ERROR

Чи є кращий спосіб зробити це? І ні, я не хочу записувати макрос.

Відповіді:



1

Ви можете використовувати |символ для операції АБО під час пошуку.

Беручи ваш другий приклад, наприклад:

/2012-07-26\|ERROR

Ще краще, якщо ви маєте ці параметри у своєму vimrc:

" Make search expressions "very magic"
nnoremap / /\v
vnoremap / /\v

Тоді вам не доведеться бігти |. Наприклад:

/\v2012-07-26|ERROR

1
У моєму мозку це не спрацювало, тому що воно повинно зупинитися, коли він знайде перший термін, тому що це робить все твердження правдивим, але в реальному житті це, мабуть, працює.
Роб

@Rob має рацію; це не спрацювало, коли я тільки тестував це. Дякую, хоча!
arussell84

Це свого роду роботи. Це отримає вам те, що ви хочете, вам доведеться орієнтуватися по всьому foobarабо errorхоч. Це працює не через те, що я сказав, а тому, що відповідає обом термінам, для чого |і тут.
Роб

Так, я бачу, що ти маєш на увазі. Я неправильно зрозумів, що ви просили.
kenny
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.