Отображать и редактировать строки, соответствующие конкретному шаблону в vi

Я ищу вариант в редакторе VI, чтобы отображать только строки, соответствующие конкретной строке. После перечисления строк я хотел бы отредактировать это слово, которое должно отразиться в исходном файле.

Например: Вот как мой файл:

AAA1 X Y Z AAA3 Z Y AB AAA5 AAA8 

Я хочу изменить последовательность AAA .. как это

 AAA1 X Y Z AAA2 Z Y AB AAA3 AAA4 

Я хочу, чтобы они были в последовательности. Итак, если я ищу и разделяю строки, на которых есть AAA, я могу редактировать этот конкретный список.

Я использовал vim /AAAA/g % | copen vim /AAAA/g % | copen открывает все строки, соответствующие шаблону AAAA. Но когда я их редактирую, он не отражается в исходном файле.

Вы должны использовать replace in vim для замены определенного соответствия.

В этом случае используйте это совпадение петтерны.

 :%s/<matching_pattern>/<replace_string>/g 

Это будет соответствовать всем элементам в файле с указанной заменой строки.

Я думаю, вам нужно что-то вроде этого:

:let i=1 | g/^AAA[0-9]\+/s//\='AAA'.i/ | let i=i+1

Вы можете прочитать о «Заменить с восходящими числами»