vi替换(substitute)命令

vi是个非常好用有用的linux 文本编辑工具,而文本替换也是非常常用的功能。

下面是一些,基本的命令格式:

 

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

 

参数详情:

 

range指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後一行,也就是整篇文章,也可以 % 代表。 % 是目前編輯的文章,# 是前一次編輯的文章。
pattern就是要被替換掉的字串,可以用 regexp 來表示。
string將 pattern 由 string 所取代。
cconfirm,每次替換前會詢問。
e不顯示 error。
gglobe,不詢問,整行替換。
i

ignore 不分大小寫。

 

  •  %s/s1/s2/       用字符串s2每行替换s1的第一个字符串s1  
      如:  
      hello ok 
      hello hello ok
      输入命令 :%s/hello/gogo
      会变成:
      gogo ok
      gogo hello ok

  •    %s/s1/s2/gc   用字符串s2每行替换s1的所有字符串s1 
      如:  
      hello ok 
      hello hello ok
      输入命令 :%s/hello/gogo
      会变成:
      gogo ok
      gogo gogo ok

      但是:系统会提示你,replace with gogo (y/n/a/q/l/^E/^Y)?  输入y即可替换
  •   :n,$s/s1/s2/     用字符串s2 替换从n行开始到最后一行,每行的第一个字符串s1
  •   :n,$s/s1/s2/gc 用字符串s2 替换从n行开始到最后一行,所有字符串s1   
  •   :s/s1/s2          用字符串s2 替换当前行开始到最后一行,第一个字符串s1   
  •   :s/s1/s2/gc     用字符串s2 替换当前行开始到最后一行,所有字符串s1    
      但是系统会给提示  replace with gogo (y/n/a/q/l/^E/^Y)?  输入y即可替换
Other:
删除多余的空格
要删除这些每行后面多余的空格,可以执行如下命令:
:%s/\s\+$//
命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是
“\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值