在 Vim 中,您可以通过以下方式搜索/替换文本。
:%s/old/new
%s是什么意思?
%
是:s
命令(代表:substitute
)运行的范围。 %
本身是:1,$
范围的缩写,意思是从第一行到缓冲区中的最后一行
。
Vim帮助文档有一些主题(用户手册-:help 10.3,参考手册-:help cmdline-ranges),描述了范围可以采用的形式。
:s
的语法(它是 :substitute
的缩写)如下:
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
%s/old/new/1
%
范围表示“整个文件”。
这非常强大;如果您只想在第1行上进行替换,则可以使用:
%s/old/new/1
:1s/a/b/
:1,3s/a/b/
一种非常有用的技巧是使用可视模式(V
)突出显示行,然后使用:s
只在您突出显示的行上进行替换。
:%s/old/new/
这将在整个文档中搜索"old"并用"new"替换每行的第一个实例。你可以使用:%s/old/new/g
来替换所有出现的"old"为"new"。
(根据jamessan的评论更新了答案)
:h range
,你会看到详细信息。如果你使用vim,我敢打赌这对你的日常编辑非常有帮助。 :) - Kent:help
,它很全面并提供了许多提示。你不会像学习其他编辑器那样快速地学会Vim,但如果你承诺不断学习,它将证明是一个非常强大和高效的编辑器。 - Ingo Karkatrange
的帮助。因此这是一个非常好的初学者问题。 - hippietrail