Vim搜索/替换,%s的含义

9er*_*9er 5 vim replace

在Vim中,您可以按以下方式搜索/替换文本.

:%s/old/new
Run Code Online (Sandbox Code Playgroud)

%s是什么意思?

jam*_*san 12

%:s命令(简称:substitute)将运行的范围. %本身就是范围的缩写:1,$,这意味着Line 1 to the last line in the buffer.

Vim帮助有几个主题(用户手册 - :help 10.3,参考手册 - :help cmdline-ranges),描述了范围可以采用的形式.


Mar*_*oij 5

:s(的缩写:substitute)的语法为:

:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
Run Code Online (Sandbox Code Playgroud)

%范围表示“整个文件”。

这非常强大;如果您只想在第1行进行替换,则可以使用:

:1s/a/b/
Run Code Online (Sandbox Code Playgroud)

或者,仅对于第1至3行:

:1,3s/a/b/
Run Code Online (Sandbox Code Playgroud)

一个非常有用的(相关)技巧,是使用可视模式(V)突出显示行,然后:s仅在突出显示的行上进行替换。

看到: :help [range]