Подтвердить что ты не робот

Как я держу все соответствующие строки в одном буфере?

Как вы держите все соответствующие строки в буфере?

Учитывая такой файл, как:

match 1
skip
skip
match 2
match 3
skip

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

Команда должна завершить это в буфере:

match 1
match 2
match 3

Моя первая мысль заключалась в том, чтобы попробовать:

:g/^match/y

Но я просто получаю последний матч. Это имеет смысл, потому что команда: g эффективно повторяет y для каждой соответствующей строки.

Возможно, есть способ добавить yank в буфер, а не перезаписывать его. Я не мог найти его.

4b9b3361

Ответ 1

:help registers
:help quote_alpha

Задайте заглавную букву как имя регистра, чтобы добавить к ней, например :yank A.

Ответ 2

:g/^match/yank A

Ответ 3

О, я только что понял после комментариев выше, что легко совместить соответствующие строки во временном буфере...

:r !grep "pattern" file.txt

Самые простые решения приходят после того, как вы отказались от их поиска.:)