在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,每行只换一个

0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.