Vim高级编辑技巧,正确利用正则表达式
Vim,即Vi IMproved,是一个Vi的增强版,Linux下最为常用的编辑器之一。然而,它强大的功能是它不仅仅是一个编辑器。 花点时间学习一下Vim的使用,可以事半功倍。随着使用,就会发现Vim的强大。 Vim高级编辑要用到正则表达式的各种技巧,先简单介绍基本的原字符集及其含义:
^
—只匹配行首$
—只匹配行尾*
—匹配0个或多个单字符.
—匹配任意单字符^$
—匹配空行
在vi中也可以使用这些正则表达式。它也有它自己的语法格式,不过匹配方式类似,比较一下很容易看出。下面给出几个常用的操作:HIGRID_ART_ADS
:g/^/m0
:%s/原文件的内容/替换成的内容/g
^M
等控制符 :1,$s/^M//g (或者:%s/^M//g)
:%s/^/要加的内容/g
:%s/$/要加的内容/g
:2s/^/要加的内容/g
:1,2s/^/要加的内容/g
:1,2s/^要删除的内容/g
:2s/要删除的内容$/g
:5s/要删除的字符串/g
:[dot][comma]$d
注意,冒号后面紧跟“点”(表示当前行),然后跟一个“逗号”,加“$”(表示最后一行),d表示删除。】
这些技巧要总结规律性,而且要在每天操作时使用,熟悉得成为手指的本能。只是看是不可能学会的。正如林锐博士所言,学了不一定懂了,懂了不一定会用。勤加练习!其他使用vi进行文本操作的技巧
dd 删除当前行
ndd 删除当前行以下n行(包括当前行在内)
p 粘贴
yy 复制当前行
nyy 复制当前行以下n行(包括当前行在内)
dd和ndd也可以认为是“剪切”。
:n,m co k 复制n到m行,粘贴到k行处(从下一行开始)
:n,m m k 剪切n到m行,粘贴到k行处(从下一行开始)
:n,m d 删除n到m行
注意的是,m必须大于n,而且m、n、k都在正文行号之内。比如说,如果文件有10行,而你的操作中出现了11,就会出现错误。m可以用特殊符号$,代表到结尾处。
如果要处理的文本比较多,那么可以采用标号的方法。具体如下:
'a,'b co 'c
,就实现了复制粘贴。如果把co改为m,就实现了剪切粘贴。