vim的正则表达式(二)应用实例



本文出自   http://blog.csdn.net/shuangde800

------------------------------------------------------------------------------------------------


本文的例子都是实践过的,如有错误,请指正 

本文约定:
$ + 命令 表示在普通的bash的命令行下
:  + 命令 表示在vim的ex(命令)模式, 按"Ctrl" + ":" 进入






修改文件中路径名列表

:s/\/home\/tim/\/home\/linda/g  把/home/tim改为/home/linda
上面不太好看,可以使用不同的字符作为模式分割符(可以使用除反斜杆,双引号和竖直线(\、"和|) 之外的任何非字母表、非空白字符作为分隔符):
:s :/home/tim:/home/linda : g
这样可读性更加强,也不容易出错



把HTML斜字体代码标签(<I><I>)放到单词hello world!的周围

:%s/hello world!/<I>&<I>/g



把所有单词help或Help都改为大写的HELP

:%s/[Hh]elp/HELP/g
或者
:%s/[Hh]elp/\U&/g



使用单个空格替换一个或多个空格

:%s/  */ /g
 


使用两个空格替换冒号或逗号后面的一个或多个空格

:%s/\([,:]\)  */\1  /g
先把冒号或逗号保存到缓冲区中,然后匹配冒号或逗号加上一个或多个空格的模式,再把这个模式替换成缓冲区的逗号或冒号,以及加上一个空格


删除所有空行(没有任何字符,除了一个回车符)

:g/^$/d



删除所有空行或者任何只包行空白的行

:g/^[ tab]*[ tab]*$/d

tab代表制表符



删除每行的所有的前导空格

:%s/^  *//g
或者
:%s/^  *\(.*\)/\1/



删除每行尾部的所有空格

:%s/  *$//
 


在文件中的每一行的开始插入 ->(或者其它字符)

:%s/^/->/
或者
:%s/^\(.*\)/->\1/
单独一个^,可以看作是指向一行的最左边的光标,替换一个字符串就相当于在光标处插入字符串


在每一行的尾部加上一个句号

:%s/$/。/
或者
:%s/\(.*\)/\1。/

同样, 单独一个$,可以看作是指向一行的最右边的光标,替换一个字符串就相当于在光标处插入字符串



交换列表中所有连字符分隔的条目的顺序

例如一个文件的内容是:
ABC : XYZ
haha : hehe
Alice : Bob
把冒号两边的字符串交换,只要下面的命令
:%s/\(.*\) : \(.*\)/\2 : \1/


颠倒文件中的行序

例如,一个文件内容是
1
2
3
要改为:
3
2
1

命令如下:
:g/.*/ m 0
或者
:g/^/ m 0






  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值