当该行在VIM中包含另一个字符串时,查找并替换字符串

时间:2018-12-04 16:22:24

标签: vim replace

我试图弄清楚如果在vim中包含另一个字符串,如何替换文件中每一行的单词或字符串。例如,给定一个包含以下内容的文件:

/\(Hello.*World\)\|\(World.*Hello\)

我想用苹果替换Test,其中该行包含单词Hello和World。我将使用搜索语句查找包含Hello和World的行(没有任何顺序)。但是我该如何在这些行上找到Test的替代品。

查找语句示例:

Hello World Apple
This is a Hello Test
World This Apple Hello a

示例更新文件

| Item    | Date       | Value |
| A       | 2018-12-01 | 1     |
| B       | 2018-12-01 | 2     |
| C       | 2018-12-01 | 2     |
| A       | 2018-12-02 | 3     |
| B       | 2018-12-02 | 3     |

1 个答案:

答案 0 :(得分:3)

您可以使用:global命令:

:g/Hello.*World\|World.*Hello/s/Test/Apple/g

在这里,我们在s/Test/Apple/g匹配的所有行上运行替换命令Hello.*World\|World.*Hello