Vim删除了所有匹配的事件,当没有被告知这样做的时候

iecba09b  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(130)

我正在使用vim编辑器,它会删除所有出现的给定单词foo,执行以下命令:

%s/foo//

请注意,我在这里没有使用全局运算符。有人能帮助解决这个问题吗?

k3bvogb1

k3bvogb11#

“%”范围覆盖所有行,即整个文件。
末尾处的“g”标志将替换行中的所有搜索词。
因此,缺少“g”标志意味着只有foo在每行中第一次出现时才会被删除/替换。
“假设”是你在每一行上只出现一个foo,看起来好像每一个foo都被删除了。试着在一行上放置多个foo,然后你会发现并不是所有的foo都被删除了。
:%s/foo// * 覆盖每一行,仅删除每行中第一次出现的foo。*
:%s/foo//g * 覆盖每一行,并删除每一行中出现的foo。*
:s/foo//仅覆盖当前行,并且如果foo存在,则仅移除第一次出现的foo。
:s/foo//g只覆盖当前行,并且当前行上出现的所有foo都将被删除。
参考**:帮助usr_12.txt**12.1替换一个单词。 x1c 0d1x

相关问题