vim的文本替换命令

语法为:[addr]s/源字符串/目的字符串/[option]

全局替换命令为::%s/源字符串/目的字符串/g

[addr] 表示检索范围,省略时表示当前行。如:

  • % 表示整个文件 等同于 1,$
  • 1,20 第1行~第20行
  • .,+2 当前行~往后2行
  • .,$ 当前行~文件尾
  • s 表示替换操作

[option] : 表示操作类型 如:

  • g 表示全局替换
  • c 表示进行确认
  • p 表示替代结果逐行显示(Ctrl + L恢复屏幕)

常见案例

:s/foo/bar/	当前行替换第一次出现的
:%s/foo/bar/g	全局替换
:5,12s/foo/bar/g	5~12行
:%s/foo/bar/gc	全局搜索替换,需要每次确认

Vim 是一款强大的文本编辑器,它支持多种高级功能,包括模式输入、宏录制、脚本编写等。在 Vim 中,进行全局替换是一项常见的任务,尤其是当你需要在整个文件或者多个文件中快速修改某些字符串时。 ### 全局替换命令通配符 在 Vim 中进行全局替换的一个关键命令是 `:%s/old/new/g` 。这个命令的基本组成部分及其含义如下: - `%`: 表示从当前文件的所有行开始操作。 - `s`: 是“substitute”的缩写,表示替换。 - `/old/`: 这里是你要寻找的旧字符串(即 "old")。 - `/new/`: 这是替换后的字符串(即 "new")。 - `g`: 这个字母代表“global”,意味着替换操作将应用到整行,并不只是匹配到的第一个位置。 #### 示例说明 假设你在 Vim 编辑器打开一个名为 `example.txt` 的文件,你想把所有的 `hello` 替换成 `hi`。那么,你可以按照下面的步骤操作: 1. 打开文件并切换到命令模式(使用 `Esc` 键退出插入模式)。 2. 输入命令 `:%s/hello/hi/g` 并按 Enter 键执行。 此时,Vim 将会搜索整个文档,并将所有出现的 `hello` 字符串替换为 `hi`。如果需要对特定范围内的行进行全局替换,可以指定行数,例如 `5,100s/old/new/g` 可以替换第5行到第100行之间的 `old` 为 `new`。 ### 相关问题: 1. **如何区分局部替换与全局替换的区别?** 当只使用 `s` 或者 `S` 而不添加 `g` 标志时,Vim 将仅替换光标所在行的第一个匹配项。而添加 `g` 则表示全局替换。 2. **能否使用正则表达式进行更复杂的替换?** 是的,可以使用正则表达式作为第一个参数来增加复杂度。例如,`:%s/\bword\b/replacement/g` 可以替换单词边界处的 'word' 为 'replacement'。 3. **如何撤销最近的一次全局替换?** 使用 `u` 命令可以撤销最后一次操作,包括但不限于全局替换。如果误操作,可以及时恢复之前的状态。 通过了解以上信息,你可以在 Vim 中更高效地处理文本编辑任务,特别是在需要大量修改文本的情况下。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值