zoukankan      html  css  js  c++  java
  • 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





  • 相关阅读:
    初步学习css 从css手册看起———text
    IE6双倍margin间距两大解决方案转载
    div+css的基本 常用到语法(一) 。
    初步学习css 从css手册看起———Font
    行内宽高设置无效的解决
    C++面对对象基础
    C++继承和派生
    基于MATLAB的FIR滤波器的设计
    C++多态
    C++中的静态成员和静态函数
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3303991.html
Copyright © 2011-2022 走看看