vi替换(substitute)命令

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

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

 

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

 

参数详情:

 

range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後一行,也就是整篇文章,也可以 % 代表。 % 是目前編輯的文章,# 是前一次編輯的文章。
pattern 就是要被替換掉的字串,可以用 regexp 來表示。
string 將 pattern 由 string 所取代。
c confirm,每次替換前會詢問。
e 不顯示 error。
g globe,不詢問,整行替換。
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” 部分是空的:”//”。这样就会删除那些匹配的空白字符。

 

 

你可能感兴趣的:(C++,c,linux,C#)