在 vi 中显示和编辑与特定模式匹配的行

在 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它会打开所有与模式 AAAA 匹配的行。但是当我编辑它们时,它没有反映在原始文件中。

答案1

您应该在 vim 中使用 Replace 来替换特定的匹配项。

在这种情况下,请使用此图案匹配。

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

这将使用指定的替换字符串匹配文件中的所有元素。

答案2

我认为你需要这样的东西:

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

您可以阅读有关“用升序替换”

相关内容