在 Vim 中,您可以通过以下方式搜索/替换文本。
:%s/old/new
%s 是什么意思?
%
是 :s
命令(:substitute
的缩写)运行的范围。 %
本身是范围:1,$
的缩写,意思是Line 1 to the last line in the buffer
。
Vim 帮助有几个主题(用户手册 - :help 10.3,参考手册 - :help cmdline-ranges)描述了范围可以采用的形式。
:s
(:substitute
的缩写)的语法是:
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
%
范围表示“整个文件”。
这个功能非常强大;如果您只想在第 1 行进行替换,您可以使用:
:1s/a/b/
或者,仅适用于第 1 至 3 行:
:1,3s/a/b/
一个非常有用的(相关)技巧,是使用视觉模式(
V
)突出显示线条,然后使用:s
仅替换您突出显示的线条。
:help [range]
:%s/old/new/
这将在整个文档中搜索“old”,并将每行的第一个实例替换为“new”。 您可以使用
:%s/old/new/g
将所有“旧”实例替换为“新”。
(根据 jamessan 的评论更新了答案)。
%s 代表整个文档。请看这里:
如果对某人有帮助,请使用 Emacs(邪恶模式)
供选择
:'<,'>s/旧/新/
当前行
:s/旧/新/
所有文件
:%s/旧/新/
还可以:
/i
:s/asd/ewq/i
/c
:%s/asd/ewq/c