14 Vim 编辑器查找与替换之替换文本

在上一篇中,我们探讨了如何在 Vim 中查找文本,了解了基本的查找命令以及使用方法。在本篇中,我们将重点关注如何在 Vim 编辑器中进行文本的替换操作,掌握替换文本的技巧,以便于更高效地编辑文件。

基本替换命令

在 Vim 中,基本的替换命令格式如下:

1
:s/查找文本/替换文本/

在这条命令中:

  • s 是表示替换的命令;
  • / 查找文本 / 是您想要查找的内容;
  • / 替换文本 / 是您想要替换成的内容。

例如,假设您有如下文本:

1
2
Hello, world!
Hello, Vim!

如果您想将 “Hello” 替换为 “Hi”,可以在命令模式下输入:

1
:s/Hello/Hi/

执行后,光标所在行的 “Hello” 会被替换成 “Hi”。结果如下:

1
2
Hi, world!
Hello, Vim!

如上所示,替换只在当前行生效。

全局替换

如果您希望在整个文件中都进行替换,可以添加一个 g (global)选项:

1
:%s/查找文本/替换文本/g

这里 :% 表示在整个文件范围内进行操作。例如,要将所有的 “Hello” 替换为 “Hi”,可以使用:

1
:%s/Hello/Hi/g

结果将变成:

1
2
Hi, world!
Hi, Vim!

替换确认

有时您可能想要逐个确认替换,这时候可以使用 c(confirm)选项:

1
:%s/查找文本/替换文本/gc

执行该命令后,Vim 会逐行询问您是否替换每一个匹配项,您可以输入 y 继续替换,输入 n 跳过,输入 a 替换所有,输入 q 退出替换,输入 l 仅替换当前匹配。

例如:

1
:%s/Hello/Hi/gc

Vim 将会依次显示每一个匹配的 “Hello”,并等待您确认是否进行替换。

正则表达式替换

Vim 的替换功能支持正则表达式,这可以让您进行更复杂的匹配。例如,假设您有如下文本:

1
2
3
4
apple
banana
apricot
Ape

如果您想用 “fruit” 替换所有以 “a” 开头的小写字母字符,可以使用:

1
:%s/\<a\w*/fruit/g

在这个表达式中:

  • \< 表示单词的开始;
  • \w* 表示零个或多个字母。

执行该命令后,appleapricot 都将被替换为 “fruit”,而 Apebanana 不会被变化,结果如下:

1
2
3
4
fruit
banana
fruit
Ape

使用替换历史

Vim 还允许您访问替换历史,这对于在文本中经常进行相似的替换操作非常有用。在输入命令后,您可以使用 q/ (最近的搜索)来查看和选择之前的替换表达式。

结语

在本篇中,我们详细介绍了 Vim 中的文本替换功能,从基本的替换命令到全局替换、确认替换以及正则表达式的应用。这些技能将在编辑长文本文件、代码或任何需要快速编辑的场合中发挥重要作用。

在下一篇中,我们将探讨如何在 Vim 中高亮搜索文本,以便于快速定位和识别要处理的内容。希望您继续关注!

14 Vim 编辑器查找与替换之替换文本

https://zglg.work/vim-editor-zero/14/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论