vi的替换操作(substitute)

4月 8, 2008 – 9:48 下午

在vi的操作中,替换是经常被用到的.其用法也十分简单.记之!

命令操作符: :substitute

命令格式: :[range]substitute/from/to/[flags]

1.substitute这个单词比较不好记,在vi中简写为s 所以 :[range]s/from/to/[flags]

2. [range] : 范围.

% 表示所有行,如果不忽略range则表示当前行. 其范围还可以用区间来表示

1,5表示第一行到第5行,如果单独的一个数字表示替换的行号.

特殊符号.”.”表示当前行,”$”表示最后一行.然后%等价于1,$.

范围还可以进行加减.比如.+3,$-4表示当前行后3行,到倒数第5行内.

还可以用标记进行范围设定,比如你要是在指定了地方设定了”mt”,”mb”用:’t,’b则表示这两个范围之间.

3. 分符号/可以用其它符号代替,如果要替换的字符中有/可以把/换成\/或者都换分隔符

eg: :s+one/two+one or two+ 分隔符为+

4. from表示要替换的词,to 表示替换成的词.

5. flags 替换修饰符号 有g,p,c

g:表示替换一行中所有的符合条件的.

p;列出所有被修改的行

c: 替换前需要确认一下.

例子:

:%s/Professor/Teacher/g 替换全文所有的Professor为Teacher

:s/^the/these/ 替换全文行头的the为these

:1,5s/this/that/g 换1到5行的this为that

:54s/President/Fool/ 替换行号为54行President为Fool.每行只换一个

:.,$s/yes/no/替换当前行到最后一行的yes为no,每行只换一个

Post a Comment