Linux中vim中进行替换/批量替换
一:在 Vim 中进行文本替换的操作是通过使用 :s
(substitute)命令来实现的。这里是一些基本的替换命令
-
替换当前行的第一个匹配项:
:s/old/new/
这将替换当前行中第一个出现的 “old” 为 “new”。
-
替换当前行的所有匹配项:
:s/old/new/g
在命令的末尾添加
g
标志表示替换当前行中所有出现的 “old” 为 “new”。 -
替换全文中的第一个匹配项:
:%s/old/new/
在
:s
前加上%
表示对整个文档进行操作,但这只会替换每一行的第一个匹配项。 -
替换全文中的所有匹配项:
:%s/old/new/g
同样是对整个文档进行操作,并替换每一行中所有的 “old”。
-
替换指定范围内的匹配项:
:10,20s/old/new/g
这会替换从第 10 行到第 20 行中所有出现的 “old”。
-
替换并确认每个匹配项:
:%s/old/new/gc
在命令的末尾添加
c
标志会让 Vim 在每次替换之前提示你确认。
记得在 Vim 的命令模式下输入这些命令,模式切换通过按 Esc
键进行。完成输入命令后,按 Enter
键执行命令。
二:在文本中替换路径 /usr/local/bin
为 /usr/bin
,因为路径中包含斜杠 /
,它通常用作 Vim 替换命令中的分隔符,所以需要对其进行转义。在 Vim 中,你可以使用反斜杠 \
来转义字符
以下是一个替换命令的例子,其中转义了路径中的斜杠:
:%s/\/usr\/local\/bin/\/usr\/bin/g
在这个例子里,每个斜杠前面的反斜杠告诉 Vim 将其视为字面上的斜杠,而不是命令的一部分。
Vim 还允许你使用其他字符作为分隔符,这样你就可以避免转义斜杠。比如说,你可以使用井号 #
作为分隔符:
:%s#/usr/local/bin#/usr/bin#g
这样做可以提高命令的可读性,避免转义带来的复杂性。在替换命令中,你可以自由选择分隔符,只需确保它不会出现在你想要查找或替换的文本中。
请注意,这里的 “old” 和 “new” 可以是任何字符串,如果它们包含特殊字符或正则表达式的部分,可能需要做适当的转义处理。