• vim编辑器替换以及全局替换


    语法: [addr]s/源字符串/目的字符串/[option]

    [addr]表示检索范围

      "1,n": 表示从第1行到n行
      "%": 表示整个文件,同"1,$"
      ".,$" :表示从当前行到文件尾

      [addr]省略时表示当前行

    s: 表示替换操作,为substitute的缩写

    [option]: 表示操作类型,如:

      g: global,表示全局替换

      c: confirm,表示进行确认

      p: 表示替代结果逐行显示(Ctrl + L恢复屏幕)

      i: ignore,不区分大小写

      [option]省略时仅对每行第一个匹配串进行替换

    如果在源字符串和目的字符串中出现特殊字符,如'/','<','>',','等需要前面加反斜杠进行转义

    常用命令示例:

    #将当前行第一个a替换为b

    :s/a/b/

    #将当前行的所有a替换为b

    :s/a/b/g

    #将每行第一个a替换为b

    :%s/a/b

    #将整个文件的所有a替换为b

    :%s/a/b/g

    #将1至3行的第一个a替换为b

    :1,3s/a/b/

    #将1至3行的所有a替换为b

    :1,3s/a/b/g

    上面是一些常用的替换,但是我们日常碰到的问题不止这么简单,这就要涉及到一些较为高级的替换操作,会涉及到相关的知识,下面是一些例子:

    #使用

    #作为分隔符,此时中间出现的/不会作为分隔符,如:将当前行的字符串"a/"替换为"b/"

    :s#a/#b/#

    #找到包含字母a的行并删除

    :g/a/d

    #删除所有空行
    :g/^$/d

     #多个空格替换为一个空格

    :s/ +/ /g

    #在正则表达式中使用和和符号括起正则表达式,即可在后面使用1,2等变量来访问和和中的内容,如下
    将data1 data2修改为data2 data1
    :s/w+w+s+w+w+/2 1 

    转载自:https://blog.csdn.net/cbaln0/java/article/details/87979056

  • 相关阅读:
    POJ 1061
    hihocoder 1330
    HDU 1525
    UVALive 3938
    POJ 2528
    HDU 1754
    《ACM-ICPC程序设计系列 数论及其应用》例题个人答案记录
    URAL 1277
    HDU 3746
    HDU 2087
  • 原文地址:https://www.cnblogs.com/wq242424/p/13085065.html
Copyright © 2020-2023  润新知