Vim 编辑器提供了强大的文本替换功能,主要通过 :s(substitute)命令实现。其基本语法为:

1
:[range]s/{pattern}/{replacement}/[flags]

示例命令解析:0,$s/This/That/g

  1. 0,$ - 指定替换范围

    • 0:从文件第 0 行(虚拟行,实际从第 1 行开始)
    • $:到文件最后一行
    • 合起来表示全文替换(等效于 %1,$
  2. s - substitute 命令

    • 表示执行替换操作
  3. /This/ - 搜索模式(pattern)

    • 查找内容 “This”(区分大小写)
  4. /That/ - 替换内容(replacement)

    • 将匹配内容替换为 “That”
  5. /g - 全局标志(global flag)

    • 替换行内所有匹配项(不加则只替换每行第一个匹配)

其他常用变体

  • :%s/This/That/gc:全文替换,每次询问确认(c 标志)
  • :5,10s/This/That/g:仅替换 5-10 行
  • :s/This/That/:仅替换当前行第一个匹配
  • :s/This/That/g:替换当前行所有匹配

补充说明

  • 分隔符 / 可替换为其他字符(如 :#|),适用于替换路径时(:s#/old/path#/new/path#
  • 使用 \ 转义特殊字符
  • & 在替换部分表示匹配的完整文本

该功能配合正则表达式可以实现更复杂的替换操作。

本文部分内容由DeepSeek生成。