Vim 统一替换(全局替换)

Vim 中全局替换 的核心命令是 :s(substitute),用来批量替换文本,支持单行、全文、指定范围、正则匹配替换,是最常用的编辑操作。

一、最常用:全文统一替换

vim

复制代码
:%s/旧内容/新内容/g

命令解释

  • %:表示作用于整个文件(所有行)
  • s:替换命令(substitute)
  • /:分隔符(也可以用 #@ 避免和路径冲突)
  • 旧内容:要被替换的文字
  • 新内容:替换后的文字
  • g全局标志,一行里有多个匹配项时全部替换(不加 g 只替换每行第一个)

示例

把文件中所有 apple 换成 banana

vim

复制代码
:%s/apple/banana/g

二、进阶用法(必学)

1. 替换前让我确认(避免误改)

c 标志,每次替换前询问:

vim

复制代码
:%s/旧/新/gc

操作提示:

  • y:确认替换
  • n:跳过
  • a:全部替换
  • q:退出替换

2. 只替换选中区域的内容

  1. v 进入可视模式,选中要替换的文本
  2. 直接输入:

vim

复制代码
:s/旧/新/g

(选中后输入 : 会自动出现 :'<,'> 代表选中范围)

3. 替换指定行范围

替换第 5 行到第 10 行的内容:

vim

复制代码
:5,10s/旧/新/g

替换当前行到文件末尾:

vim

复制代码
:.,$s/旧/新/g

4. 忽略大小写替换

i 标志,匹配时不区分大小写:

vim

复制代码
:%s/old/new/gi

三、特殊场景:替换内容含 / 斜杠

如果替换文件路径 (含 /),用 # 代替分隔符,避免冲突:

vim

复制代码
:%s#/usr/bin#/usr/local/bin#g

四、快速速查表

表格

命令 作用
:s/旧/新/g 替换当前行所有匹配
:%s/旧/新/g 全文统一替换(最常用)
:%s/旧/新/gc 全文替换,每次确认
:5,10s/旧/新/g 替换 5~10 行
:%s#旧#新#g 替换内容含 / 时使用

总结

  1. 日常全文统一替换 直接用::%s/旧/新/g
  2. 怕改错就加确认::%s/旧/新/gc
  3. 路径替换换分隔符::%s#旧#新#g
相关推荐
琥珀色糖6 小时前
Linux守护进程
linux·终端·守护进程·会话·进程组
开心大爆炸9 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun210 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
苏生Susheng11 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
Ruiery11 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败11 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW11 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li11 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
苏生Susheng12 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
额额额对了12 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议