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

时间:2014-03-11 13:50:26

标签: vim replace

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

:%s/old/new

%s是什么意思?

4 个答案:

答案 0 :(得分:10)

%是运行:s命令(:substitute的缩写)的范围。 %本身是范围:1,$的缩写,意思是Line 1 to the last line in the buffer

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

答案 1 :(得分:4)

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

:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

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

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

:1s/a/b/

或者,对于第1至3行:

:1,3s/a/b/

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

请参阅::help [range]

答案 2 :(得分:1)

:%s/old/new/

这将在整个文档中搜索" old"并用" new"替换每行的第一个实例。您可以使用:%s/old/new/g替换" old"的所有实例。用" new"。

(基于jamessan评论的更新答案)。

答案 3 :(得分:0)

%s 代表整个文档。见这里:

http://vim.wikia.com/wiki/Ranges