[Tips]2011-10-19

两个Vim的小技巧 :]

其实就是两个正则表达式,刚好今天用到了,就记下来。

1. 有多行文本,其中有几行是URL,要保留这几行URL,其它的行删掉。

:g!/:\/\//d

g本来是用来做grep类似的事情的,:g/pattern 会显示出符合pattern的所有行
惊叹号!表示相反,就是指选中的行是不符合pattern的。后面的/d是表示删掉选中的行。

2. 有多行文本,每行都是类似这样的

keyA=valA&keyB=valB&keyC=valC

现在要交换key和val的位置,变成

valA=keyA&valB=keyB&valC=keyC

:%s/\<\(\w*\)\>=\<\(\w*\)\>/\2=\1/gi

%s是全局替换,这个比较常用了。\<和\>是不太常用的anchor字符(锚字符),分别表示word的开始和结束。
\(..\)也比较常用了,可以保存匹配结果。\w*表示一个或多个word字符。
word字符包括a-zA-Z _ 和 0-9

:]