vim/vi字符串替换

1. 替换语法

:[range]s/pattern/string/[c,e,g,i]
:[range]s#pattern#string#[c,e,g,i]
:[range]s+pattern+string+[c,e,g,i]
 
1.1 range

"%" 表示所有行
"." 表示当前行
"$" 表示最后一行
"n" 表示第n行,n为具体数字
"1,$" 表示从第1行到最后一行,即所有行
"n,$" 表示从第n行到最后一行
"1,n" 表示从第1行到第n行

1.2 pattern
pattern表示要被替换的字符串,也可以是一个正则表达式

1.3 string
string即替换的目的字符串
:%s/from/to/g
上面的表达式表示:将整个文档中所有的“from”替换为“to”

1.4 [c,e,g,i]
  • c 每次替换之前询问
  • e 不显示错误信息
  • g 整行替换,即替换一行中的所有匹配项(如不加g,则仅匹配一行中的第一个匹配项)
  • i  匹配是忽略大小写

2. 补充说明

如果pattern中含有"/",那么可以考虑使用“#”或者“+”来作为分隔符,例如:
:s+/home+/HOME+g
 
 
 
 
或者
:s#/home#/HOME#g
上述2个表达式都可实现:替换当前行中的所有“/home”为“/HOME”

3. 常用命令

:s/from/to/      将当前行的第一个from替换为to
:s/from/to/g     将当前行的所有from替换为to
:%s/form/to/     将所有行的第一个from替换为to
:%s/from/to/g    将所有行的所有from替换为to,即整个文档中所有from替换为to
:%s/from/to/gi   将整个文档中所有from替换为to,并忽略大小写
:%s/from/to/cgi  将整个文档中所有from替换为to,忽略大小写,并且每次替换之前询问
:1,$s/from/to/   将第1行~最后一行之间的每一行的第一个from替换为to
:1,$s/from/to/g  将第1行~最后一行之间的每一行的所有from替换为to
:n,$s/from/to/   将第n行~最后一行之间的每一行的第一个from替换为to
:n,$s/from/to/g  将第n行~最后一行之间的每一行的所有from替换为to
:n,ms/from/to/   将第n行~第m行之间的每一行中的第一个from替换为to
:n,ms/from/to/g  将第n行~第m行之间的每一行中的所有from替换为to

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值