Vim 替换字符串(超详细)

更新时间 2023-11-29 12:25:02

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 54w+ 字,讲解图 2476+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 1900+ 小伙伴加入学习 ,欢迎点击围观

本小节中,我将介绍如何在 Vim 中进行字符串替换,以及一些实用的替换技巧。

1. 基础替换命令

在 Vim 中,使用 :substitute 命令进行字符串替换是相当直观的。其基本格式如下:

:%s/要替换的字符串/新字符串/g

这个命令将会在整个文件中替换所有匹配到的字符串。其中,% 表示对整个文件进行操作,s 表示替换,/要替换的字符串/ 是你要被替换的字符串,新字符串 是替换成的新字符串,/g 表示全局替换。

例如,要将文件中所有的 "apple" 替换为 "orange",你可以执行:

:%s/apple/orange/g

2. 局部替换

有时候,你可能只想替换每一行中第一个匹配到的字符串。这可以通过去掉 /g 选项来实现:

:%s/apple/orange/

3. 逐个确认替换

为了避免误操作,可以使用 c 选项逐个确认每次替换。这在替换之前提供了额外的安全层:

:%s/apple/orange/gc

在执行这个命令后,Vim 会在每次替换前询问是否替换。你可以选择 y 表示替换,n 表示不替换。

4. 替换前确认

在执行替换命令前,你可以通过设置 confirm 选项来开启确认提示。这样可以更好地掌控替换操作:

:set confirm

5. 替换特定范围

如果你只想在文件的某个范围内进行替换,可以指定行号范围。例如,只在第 10 行到第 20 行进行替换:

:10,20s/apple/orange/g

6. 使用正则表达式

Vim 支持强大的正则表达式,可以在替换中灵活应用。例如,如果你只想替换以 "apple" 开头的单词:

:%s/\bapple\b/orange/g

在这个正则表达式中,\b 表示单词的边界。

结语

掌握 Vim 中的字符串替换技巧是成为高效编辑者的一部分。通过灵活运用这些命令和选项,你可以更加轻松地进行代码维护和修改。希望这篇文章能够帮助你更好地利用 Vim 的强大功能。