当前位置: 首页 > article >正文

Vim 文本查找/替换

Vim 文本查找/替换

    • Vim 查找
    • Vim 替换
      • 单行替换首个old
      • 单行替换全部的old
      • 多行替换首个old
      • 多行替换全部old
      • 全局替换
      • 确认替换

Vim 查找

在Vim编辑器下进入底行模式(命令模式),输入/word点击回车键开始查找内容;并使用n查找下一个,N查找上一个

Vim 替换

单行替换首个old

在Vim下使用:s/old/new命令可以替换当前行的第一个old,比如:

abcdabcd

我对以上命令使用:s/a/123点击回车后,上述文本会变为:

123bcdabcd

单行替换全部的old

只会替换第一个a,第二个a不发生改变,若是我想同时改变本行所有的a,则需要在末尾加个g

同样,对abcdabcd执行:s/a/123/g之后,内容将会变为

123bcd123bcd

多行替换首个old

但是这样只能替换光标所在行的内容,要是想多行替换甚至全局替换,该如何操作呢?只需要在替换前面加上范围就可以,如下所示:

对接下来的例子对以下文本进行操作(在底行模式下输入:set nu可以显示行号):

  1 abcdabcd
  2 abcd
  3 abcdabcdabcd
  4 abcd

执行命令:2,3 s/a/123(替换第二行到第三行的第一个a为123),会得到如下结果

  1 abcdabcd
  2 123bcd
  3 123bcdabcdabcd
  4 abcd

可以看到第一个a变成了123

多行替换全部old

如果想替换第二行与第三行全部的a的话,只需要再加一个g就可以(:2,3 s/a/123/g),得到如下结果

  1 abcdabcd
  2 123bcd
  3 123bcd123bcd123bcd
  4 abcd

可以看到第二行第三行的a全部变成了123

全局替换

全局替换与多行替换一致,只不过冒号后面的范围要改成第一行与最后一行,通过:set nu可以查看行号,但是若是有非常多的行则很麻烦,所以可以使用%直接表示全文,或者使用$表示最后一行,所以以下两种方式都是可以的:

:% s/a/123/g # 表示全文替换
:1,$ s/a/123/g # 表示从第一行到最后一行替换(也是全文替换的效果,但是更加灵活)

确认替换

在命令后面加上c会跳出确认替换的样式,比如

:s/a/123/c
:s/a/123/gc

http://www.kler.cn/a/17262.html

相关文章:

  • 【系统设计】数据库压缩技术详解:从基础到实践(附Redis内存优化实战案例)
  • SpringBoot后端解决跨域问题
  • 使用 Sparkle 实现 macOS 应用自定义更新弹窗
  • 使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径
  • 35.3K+ Star!PhotoPrism:一款基于AI的开源照片管理工具
  • pgsql和mysql的自增主键差异
  • 都23年了你还记得渐进式框架是什么意思吗
  • 国民技术N32G430开发笔记(18)- I2C1 从机收发数据
  • 【react全家桶学习】react组件中的ref属性(详)
  • K8S之HPA自动扩缩容机制
  • 【五一创作】QML、Qt Quick /Qt中绘制圆形
  • 第四章 数据关联分析方法
  • C/C++每日一练(20230504)
  • [Leetcode] 0697.数组的度
  • api 和 implementation 区别
  • 最大和+翻硬币(蓝桥杯JAVA解法)
  • 【python】创建python包
  • 浅谈MySQL索引以及执行计划
  • 自定义类型:结构体
  • Windeployqt 打包,缺少DLL 的原因分析,解决方法
  • 【网络】网络基础入门
  • Bean的作用域和生命周期
  • Splunk 转移数据之collect 命令
  • 功能齐全的 DIY ESP32 智能手表设计之PCB介绍
  • 一篇带你快速入门DDD领域驱动设计
  • 【JavaEE初阶】简单了解wait和notify方法~