在Vim中,我如何用另一个单词替换每行中某个单词的第一次出现?

get*_*ekt 6 vim

例如,如果我有:

吃吃吃吃蛋糕

吃吃吃蛋糕

蛋糕吃吃蛋糕

我怎么只用梨的每一行中的第一个蛋糕实例?

吃吃吃吃梨饼

吃吃吃梨

梨吃吃蛋糕

Pra*_*nna 20

使用以下

:%s/cake/pear/
Run Code Online (Sandbox Code Playgroud)

请注意,如果在上面的表达式中附加"g"标志,则搜索会在整个行上进行全局搜索.初始'%'字符表示替换应发生的范围.%表示整个文件(或文件中的所有行).

所以下面只更换每一行的第一次出现

:%s/cake/pear/
Run Code Online (Sandbox Code Playgroud)

以下是每行更换所有事件

:%s/cake/pear/g
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,如果设置了`gdefault`,则尾随的`g`标志的含义被反转.见`:help'gdefault`. (4认同)
  • `g`代表全球.您可以使用`:help substitute`阅读更多关于vim(和其他标志,如g)中的s(ubstitute)函数的内容. (2认同)