• vim 查找与替换


    一、vim 查找

    1. 正向查找 / 与 反向查找 ?

    2. 退出查找 <Esc>

    3. 跳转到下一处匹配 n ,跳转到上一处匹配 N

    4. /<CR> 正向跳转到相同模式的下一处匹配, ?<CR> 反向跳转至相同模式的上一处匹配

    5. <Up>键浏览之前的查找记录,<Ctrl-p>查看上一条查找记录, <Ctrl-n>查看下一条查找记录

    6. :noh 清除匹配结果的高亮

    7. :%s///gn 统计当前模式的匹配个数

    8. q/ 调出查找历史窗口

    9. q: 调出命令行历史窗口

    二、 vim替换

    语法: [range]s[ubstitute]/{pattern}/{string}/[flags]

    1. 替换域{string}  特殊字符: 

      插入一个换行符

      插入一个制表符

      \ 插入一个反斜杠

      1 插入第一个子匹配

      插入匹配模式的所有内容

      & 插入匹配模式的所有内容

      ~ 使用上一次调用substitute命令的{string}

      ={vim script} 执行表达式,并将结果返回作为替换字符串

    2. 查找范围 [range]

       为空则表示当前行 :s/go/goes/

       :%表示在文件所有行执行 :%s/go/goes/

       :'<,'> 表示在可视模式下选中的行 :'<,'>s/go/goes/

    3. 标志位 [flag]

       g 表示在一整行上执行  :%s/go/goes/g

       c 对替换操作进行确认  :%s/go/goes/gc

       n 抑制正常的替换操作, 只显示匹配个数 :%s/go/goes/gn

       e 屏蔽错误提示 :%s/go/goes/ge

    4. 将替换操作分两步

        第一步:通过/ 进行查找模式匹配

        第二步:查找域留空则可以利用第一步的查找模式 :%s//goes/gc  或者利用<Ctrl-R>/ 将上一步的查找模式黏贴到查找域

    5. 黏贴寄存器内容或者引用寄存器

       :%s//<Ctrl-R>0/gc  黏贴复制专用寄存器内容到替换域

       :%s//=@0/gc 引用复制专用寄存器中的内容到替换域

    6. 重复上一次的替换命令 g& 

        :%s//~/&   表示用同样的标志位、同样的替换字符串、同样的查找模式以及全文件范围内重复上一次的substitute命令

        :&&  重复上一次命令只作用于当前行, 第一个&表示重复上次的:substitue 命令,第二个& 表示重用上一次:substitue命令的标志位

        :%&& 重复上一次命令并作用于整个文件

        :'<,'>&& 作用于高亮区域

        g& 相当于 :%&&

    7. 替换是执行vim脚本

        :%s//=submatch(0)-1/g    submatch(0) 获得当前匹配的内容

    8. 在多个文件中执行替换操作

        第一步:args **/*.txt  将要执行替换的文件加入参数列表

        第二步:  set hidden   在不保存文件的情况下跳转到其他文件

        第三步:argdo %s//goes/ge      利用 e标志位抑制找不到模式的情况下抛出错误 

        第四步:argdo update  在文件有改动的情况下执行保存

  • 相关阅读:
    关于敏捷开发的一些思考。
    【转】浅谈程序猿的职业规划,看你如何决定自己的未来吧。
    Individual Project
    homework_06 围棋程序改进
    homework 08_2 C++11新特性作业之二
    homework_08
    软件工程个人作业——Agile Software Development读后感
    附加题——软件工程之结对编程
    软件工程——PairProject
    软件工程第一次个人项目——词频统计by11061153柴泽华
  • 原文地址:https://www.cnblogs.com/xiaodi-js/p/7209015.html
Copyright © 2020-2023  润新知