【vim 中如何替换】

「vim 中如何替换」


1. 最常用的几条命令

在 Vim 里,替换命令的基本格式是:

vim 复制代码
:[范围]s/原内容/新内容/[标志]

1) 当前行替换

vim 复制代码
:s/foo/bar/      " 当前行,将第一个 foo 换成 bar
:s/foo/bar/g     " 当前行,将所有 foo 换成 bar

2) 整个文件替换

vim 复制代码
:%s/foo/bar/g    " 全文所有 foo 换成 bar
:%s/foo/bar/gc   " 全文替换,逐个确认(y 是替换,n 跳过)

3) 指定行范围替换

vim 复制代码
:3,10s/foo/bar/g   " 第 3 行到第 10 行之间替换
:.,$s/foo/bar/g    " 当前行到文件末尾替换
:.,+4s/foo/bar/g   " 当前行和之后 4 行里替换

2. 常用标志说明

放在命令最后的 /[标志] 部分:

标志 含义 示例
g 一行中全部匹配 :%s/foo/bar/g
c 每次替换前确认 :%s/foo/bar/gc
i 忽略大小写 :%s/foo/bar/gi
I 强制大小写敏感 :%s/foo/bar/gI
e 没有匹配不报错 :%s/foo/bar/ge

3. 只替换完整单词(不替换子串)

比如只想把独立单词 foo 换成 bar,而不影响 foobar

vim 复制代码
:%s/\<foo\>/bar/g
  • \< 表示单词开始
  • \> 表示单词结束

4. 一些非常实用的小技巧

1) 替换前确认

vim 复制代码
:%s/foo/bar/gc

每个匹配都会问你:replace with bar (y/n/a/q/l/^E/^Y)?

  • y:替换当前
  • n:跳过当前
  • a:替换后面全部
  • q:退出
  • l:只替换这一处后退出

2) 在可视选区内替换

  1. 在普通模式按 Vv 选中一段文本

  2. :,命令行会自动出现 :'<,'>

  3. 输入替换命令,例如:

    vim 复制代码
    :'<,'>s/foo/bar/g

只会在选中的区域里替换。

3) 删除匹配的文本

vim 复制代码
:%s/foo//g     " 删除全文中所有 foo
:s/foo//g      " 删除当前行所有 foo

4) 去掉多余空格(典型格式化操作)

vim 复制代码
:%s/\s\+/ /g       " 多个空白变成一个空格
:%s/\s\+$//e       " 删除每行行尾空白

5. 最小速查表

vim 复制代码
:s/a/b/          " 当前行第一个 a -> b
:s/a/b/g         " 当前行所有 a -> b
:%s/a/b/g        " 全文所有 a -> b
:%s/a/b/gc       " 全文替换,逐个确认
:3,10s/a/b/g     " 第 3~10 行的 a -> b
:%s/\<a\>/b/g    " 只替换独立单词 a -> b
相关推荐
2601_961845154 小时前
考研网课资源网盘|2027|资料
数据库·vim·sublime text·figma·photoshop·墨刀·高考
zh路西法5 小时前
【绕过 vscode-server】用 SSHFS SFTP 实现本地远程开发
ide·vscode·编辑器
技术小甜甜7 小时前
[办公效率] Excel 表格越做越乱,先整理字段、格式还是公式?
数据库·excel·办公效率·数据整理
SunnyDays10118 小时前
如何使用 C# 自动调整 Excel 行高和列宽
开发语言·c#·excel
九皇叔叔9 小时前
VSCode + Vue3 常用组件
ide·vscode·编辑器
itgather9 小时前
OfficeExcel — Word / Excel DLL 验证台功能介绍
c#·word·excel
葡萄城技术团队9 小时前
【SpreadJS 新版本特性揭秘】完美对齐 Excel 365:V19.1 单元格内嵌图片架构解析
excel
qq_422152579 小时前
Excel 转 CSV 工具怎么选?格式兼容、编码问题与数据导出方案实测
excel
҉人间无事人9 小时前
wps中excel跨表通过匹配数据取其他值
excel·wps
sbjdhjd9 小时前
04 (下) | K8S微服务实战:从 Service 到金丝雀发布
运维·微服务·云原生·kubernetes·开源·云计算·excel