【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. 在普通模式按 V 或 v 选中一段文本

  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
相关推荐
百数平台5 小时前
百数表格知识库配置指南:Excel/CSV 上传、表结构字段类型与 NL2SQL 查询全说明
excel
初雪云5 小时前
UniApp 云打包拿到 IPA 后,真正的发布工作才刚开始
ios·自动化·编辑器·产品经理·iphone
葡萄城技术团队6 小时前
在 DSH 中直接查看和编辑 Excel:dsh-spreadjs-editor 开源插件发布
excel
开开心心就好7 小时前
视频里的图片怎么提取?双击一下就导出
java·前端·人工智能·spring·智能手机·intellij-idea·excel
葡萄城技术团队9 小时前
从 AI 生成到在线预览:dsh-spreadjs-editor 补齐 DSH 的 Excel 任务闭环
excel
泡海椒9 小时前
JQuick-Excel 实战:用 STYLE 配置单元格与区域样式
开发语言·python·excel
优选资讯19 小时前
标签打印软件怎么对接 Excel 数据
前端·excel
泡海椒1 天前
JQuick-Excel 实战:FORMAT 管理日期与数字的 Excel 显示
开发语言·python·excel
AIGS0011 天前
从814张表到250个本体:本体建模在做什么
数据库·excel·erp·数据中台·智能问数·本体语义·企业大脑
幸运小圣1 天前
Buffer 新手入门【Node.js】
node.js·编辑器·vim