全局替换命令格式

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

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

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

    如:“1,20” :表示从第1行到20行;

    “%” :表示整个文件,同“1,$”;

    “. ,$” :从当前行到文件尾;

    s : 表示替换操作

    [option] : 表示操作类型

    如:g 表示全局替换;

    c 表示进行确认

    p 表示替代结果逐行显示(Ctrl + L恢复屏幕);

    省略option时仅对每行第一个匹配串进行替换;

    如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义

下面是一些例子:

#将That or this 换成 This or that
:%s/\(That\) or \(this\)/\u\2 or \l\1/
—-
#将句尾的child换成children
:%s/child\([ ,.;!:?]\)/children\1/g
—-
#将mgi/r/abox换成mgi/r/asq re
:g/mg\([ira]\)box/s//mg//my\1sq re/g    <=>  :g/mg[ira]box/s/box/sq re/g
—-
#将多个空格换成一个空格
:%s/  */ /g
—-
#使用空格替换句号或者冒号后面的一个或者多个空格
:%s/\([:.]\)  */\1 /g
—-
#删除所有空行
:g/^$/d
—-
#删除所有的空白行和空行
:g/^[  ][  ]*$/d
—-
#在每行的开始插入两个空白
:%s/^/>  /
—-
#在接下来的6行末尾加入.
:.,5/$/./
—-
#颠倒文件的行序
:g/.*/m0O  <=> :g/^/m0O
—-
#寻找不是数字的开始行,并将其移到文件尾部
:g!/^[0-9]/m$ <=> g/^[^0-9]/m$
—-
#将文件的第12到17行内容复制10词放到当前文件的尾部
:1,10g/^/12,17t$
~~~~重复次数的作用
—-
#将chapter开始行下面的第二行的内容写道begin文件中
:g/^chapter/.+2w>>begin
—-
:/^part2/,/^part3/g/^chapter/.+2w>>begin
—-
:/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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 中更高效地处理文本编辑任务,特别是在需要大量修改文本的情况下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值