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

Глобально добавить к строке с совпадающим сроком в vim

Я уверен, что это легко, я просто пропускаю персонажа или два.

Мне нужно найти конкретный термин в файле, и когда я его найду, мне нужно добавить что-то в эту строку. И я хочу сделать это для КАЖДОЙ линии с совпадением.

Чтобы сделать это один раз, я могу это сделать:

/Thing to find/s/$/ Stuff to append/

Легко. И если моя "вещь, чтобы найти" была в КОНЕЦ линии, я мог бы это сделать:

%s/\(Thing to find\)$/\1 Stuff to append/

Чтобы сделать то же самое в каждой строке соответствия

Но как мне сделать первую вещь на каждой строке?

Думаю, я мог бы сделать

%s/\(Thing to find.*\)$/\1 Stuff to append/

Но это кажется неуклюжим, и это усложнило бы, если бы предмет поиска был на линии более одного раза.

Я думаю, что должен быть способ просто выполнить мой первый поиск по всему миру, но мне трудно написать краткое описание для google.

Так могущественные штабелеры, кто-то хочет заманить меня двумя байтовыми решениями?

4b9b3361

Ответ 1

Команда :g// - это то, что вы ищете - она ​​запускает команду на каждой строке, соответствующей шаблону:

:g/Thing to find/ s/$/ Stuff to append/