在vim编辑中,编辑器使用指定的字符模式对文件中的每行进行检查,使用新字符串来替换模式。
全局替换使用命令 :g(global全局)和:s(switch替换)。

单个字符替换:

:s/old/new/

这将把光标所在行old的第一次出现修改为new。

/(斜杠)是该条命令不同部分之间的分隔符(当斜杆为该行的最后一个字符时,可不写)

单个字符多个替换:

:s/old/new/g

把当前行old的每次出现改为new,而不只是该行的第一个old。
:s命令允许替换串后面带有选项,上面语法中的g代表全局(g选项影响一行中的每个模式,不要把它与影响文件中所有行的:g命令混淆)
通过在:s命令前加上地址前缀,可以把它的范围扩展到多行。例如下面命令把50行到100行的old的每次出现都改为new:
:50,100 s/old/new/g
下面的命令把整个文件中的old的每次出现都改为new:
:1,$ s/old/new/g

确认替换:

使用搜索替换命令有时候会出错,而得到不想要的结果。在替换命令尾部加上c (confirm用于确认),在替换每个old前都会提示并确认:
:1,30 s/old/new/gc

将会出现提示replace with hehe (y/n/a/q/l/^E/^Y)?
y替换,n不替换,a替换所有,q放弃,l替换第一个并进入插入模式,^E和^Y是提示你用Ctrl+e或Ctrl+y来滚动屏幕的。

上下文相关替换:

除了直接使用一个单词(或短语)替换另一个,还有稍微复杂的全局替换语法。这些语法可以对一个模式进行搜索,一旦找到含有模式的行,就可以使用不同与模式的串进行替换,我们把这种替换叫做上下文相关替换。

语法格式:
:g/pattern/s/old/new/g

将会把包含pattern的行中,把所有old替换为new
第一个g表示是在文件的所有行上执行的命令,模式pattern识别要发生替换的行。在那些包含模式pattern的行上,将把old替换(s)为new,最后的g表示在该行上进行全部替换。

如果用来进行搜索的模式与想要修改的模式相同,就不必重复:
:g/string/s//new/g 等价于 :g/string/s/string/new/g

注意:
:g/string/s//new/g 也等价于 :% s/string/new/g

Vi/Vim全局替换基本语法相关推荐

  1. Linux—vi/vim全局替换

    vim全局替换   在linux系统中编辑文件或者配置时,常常会用到全局替换功能. 语法格式 :%s/oldWords/newWords/g 其中,oldWords为替换前的值:newWords为替换 ...

  2. vim 全局替换_高效操作:vim 快速删除空行和注释

    说起 Linux 下的高效率编辑器,绝对少不了 vi / vim 这样灭霸级别的效率产品,无论是编辑文档.写 shell 脚本,还是 coding ,熟练使用 vi / vim 可以让你在 Linux ...

  3. Linux vim全局替换方法

    Linux命令:vi全局替换方法 语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr]: 表示检索范围,省略时表示当前行. ...

  4. 学习vi编辑器 —— 全局替换

    2011-06-16 wcdj (一) 确认替换 (二) 上下文相关替换 (三) 模式匹配规则 (1) 元字符在搜索模式中的使用 (2) 一些模式匹配例子 全局替换真正使用的是两个 ex 命令 -- ...

  5. Vi/Vim查找替换使用方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  6. [转]Vi/Vim查找替换使用方法

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  7. vi/vim 查找替换使用方法

    http://wzgyantai.blogbus.com/logs/28117977.html vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记 ...

  8. CentOS vim 全局替换命令

    语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行. 如:"1,20" ...

  9. vim 全局替换_有一说一,Intellij IDEA 自带的 Vim 插件真心不错!

    作者:kidneyball 链接:iteye.com/blog/kidneyball-1828427 在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结 ...

最新文章

  1. 赋值、浅拷贝、深拷贝
  2. iphonex价格_iPhone12成10年内最受期待的苹果手机,但价格会狂涨
  3. 分类与监督学习,朴素贝叶斯分类算法
  4. 【Python实现数据可视化】创建3D柱状图
  5. 外链引入css有哪些方式_HTML+CSS基础(三) CSS的引入方式和CSS选择器
  6. linux ssh yum升级_Linux 运维必备的 13 款实用工具,拿好了
  7. Python pip install 包后,pycharm仍然提示No module named(提示 No module named ‘pip‘)
  8. FZU_1683 矩阵快速幂 求和
  9. Get AD Object and disable move delete AD account script 查询删除AD账户计算机
  10. 手动实现apply、call、bind
  11. 微型计算机在机械设计中的应用,浅谈计算机技术在机械设计制造及自动化中的应用.docx...
  12. flutter中使用图标(含自制图标库方案)
  13. 【名额有限】腾讯技术工程-运维技术沙龙
  14. 论文英文参考文献[10]的时候后面多空格_毕业生必看论文查重修改技巧
  15. SQL Server 2012 自动增长列,值跳跃问题
  16. 算法中的最优化方法_学习目录
  17. Python imageio方法示例
  18. SQL SERVER 不允许保存更改
  19. sumif单列求和_EXCEL条件求和函数SUMIF的几种常见用法
  20. 数理化解题研究杂志数理化解题研究杂志社数理化解题研究编辑部2022年第15期目录

热门文章

  1. java-php-python-ssm微视频管理系统设计计算机毕业设计
  2. 京东再入AI科学家,裴健出任京东集团副总裁负责集团两大业务
  3. [机缘参悟-7]:《格物致知+知行合一》的体系架构
  4. 1024分辨率《加勒比海盗4》BD中英双字无水印
  5. Saleae 逻辑分析仪SX24M8使用心得
  6. OKR跟进的四象限法则
  7. 如何做一个基于python校园二手书籍交易系统毕业设计毕设作品(Django框架)
  8. android截取视频为gif图片大小,视频编辑器实验室:修剪,裁剪,转换为GIF
  9. Linux搭建一个网站,实现局域网访问
  10. 20. 计算器PLUS