vim之一键替换

Vim的substitute命令是一个非常强大的文本替换工具,它允许用户在整个文件或指定范围内执行文本替换操作。

命令格式

substitute命令的基本格式如下:

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

其中:

  • [range] 指定替换操作的范围,可以是具体的行号行号范围,或者特殊符号如 %(表示整个文件)。
  • ssubstitute 命令的缩写。
  • {pattern} 是需要被替换的文本模式,可以使用Vim的正则表达式。
  • {string} 是用来替换 {pattern} 的文本。
  • [flags] 是可选的标志位,用于调整替换命令的行为。

标志位

  • g:全局替换。使得 substitute 命令可以修改一行内的所有匹配,而不仅仅是第一处匹配。
  • c:确认替换。在每次替换之前都会询问用户是否确认替换。
  • n:计数替换。使 Vim 不执行替换操作,而只是统计和显示本次 substitute 命令匹配的个数。
  • e:屏蔽错误提示。用于在替换出错时不显示错误信息。
  • &:重用上一次 substitute 命令所用过的标志位。

用法列举

  1. 替换当前行的第一个匹配项:

    :s/old_text/new_text/

  2. 替换当前行的所有匹配项:
:s/old_text/new_text/g
  • 添加 g 标志后,将替换当前行中所有出现的 old_text

  • 3. 替换整个文件中的所有匹配项:

  • :%s/old_text/new_text/g

    使用 % 作为范围指定符表示在整个文件中进行替换。

  • 4. 添加 c 标志后,每次替换前都会询问用户是否确认。

  • :10,20s/old_text/new_text/gc

    5. 替换并统计匹配次数:

  • :%s/old_text/new_text/n

    使用 n 标志,Vim 会统计匹配次数但不执行替换。

  • 6. 在特定范围内替换:

  • :10,20s/old_text/new_text/g

    这将在第10行到第20行之间替换所有的 old_text

  • 7. 使用 Visual 模式选中区域进行替换:

    a. 首先,按下 v 进入 Visual 模式(行选择模式),或者按下 V 进入 Visual Line 模式(整行选择模式),或者按下 Ctrl+v 进入 Visual Block 模式(块选择模式)。
  • b. 使用方向键选择你想要替换的文本区域。一旦你选中了区域,你可以按下 : 进入命令模式,然后输入替换命令。
  • 例如,:'<,'>s/foo/bar/g 会将选中的区域中的 "foo" 替换为 "bar"。这里的 '<,'> 是一个范围指定符,表示从 Visual 模式选中的开始位置到结束位置。
  • 注意:在替换过程中,Vim 会按照正则表达式的规则进行匹配。因此,如果你需要更精确的匹配或者更复杂的替换逻辑,可能需要学习和使用 Vim 的正则表达式功能。另外,如果你在执行替换操作时希望保存撤销历史,可以在命令前添加 undo 标志,例如 :%sundo/old_text/new_text/g。这样,如果你对替换结果不满意,可以通过 u 命令撤销替换操作。

相关推荐

  1. vim之一替换

    2024-04-23 03:18:02       17 阅读
  2. vim 替换

    2024-04-23 03:18:02       36 阅读
  3. vim搜索和替换

    2024-04-23 03:18:02       24 阅读
  4. Vim替换时区分大小写

    2024-04-23 03:18:02       19 阅读
  5. vim方向乱码

    2024-04-23 03:18:02       10 阅读
  6. vim 基本命令查找和替换

    2024-04-23 03:18:02       40 阅读
  7. vim 编辑器 查找和替换文本 命令

    2024-04-23 03:18:02       32 阅读
  8. vim 文件内容替换 && cat 合并文件

    2024-04-23 03:18:02       12 阅读
  9. kubernetes 之 一安装prometheus

    2024-04-23 03:18:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 03:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 03:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 03:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 03:18:02       20 阅读

热门阅读

  1. Vue3 ts使用echarts

    2024-04-23 03:18:02       16 阅读
  2. Vue + Cesium(之一)

    2024-04-23 03:18:02       13 阅读
  3. Vim是一款功能强大的文本编辑器

    2024-04-23 03:18:02       13 阅读
  4. Spring注解@ResponseBody的作用与应用场景

    2024-04-23 03:18:02       13 阅读
  5. zabbix

    zabbix

    2024-04-23 03:18:02      12 阅读
  6. element-ui组件封装技巧

    2024-04-23 03:18:02       11 阅读
  7. 微信小程序中前端 授权登录获取用户的openid

    2024-04-23 03:18:02       13 阅读
  8. intellij idea的快速配置详细使用

    2024-04-23 03:18:02       14 阅读
  9. 279. 完全平方数

    2024-04-23 03:18:02       18 阅读
  10. flink和spark的区别

    2024-04-23 03:18:02       13 阅读
  11. Android组件化、模块化、插件化

    2024-04-23 03:18:02       13 阅读
  12. 【c++】cpp之引用

    2024-04-23 03:18:02       13 阅读
  13. Environment Modules工具

    2024-04-23 03:18:02       11 阅读