【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
相关推荐
写了20年代码的老程序员1 天前
Excel 导入导出为什么总是把后端逼成字段搬运工
java·excel
Cloud_Shy6181 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 中篇)
数据库·python·sql·数据分析·excel·web
Metaphor6921 天前
使用 Python 将 Excel 转换为 PDF
python·pdf·excel
屋外雨大,惊蛰出没1 天前
Vscode自动生成类图
ide·vscode·编辑器·类图绘制
星越华夏1 天前
Pandas获取excel表sheet名称
excel·pandas
ONLYOFFICE1 天前
ONLYOFFICE 文档9.4发布:许可证更新、电子表格的深色模式、水平分隔线、新幻灯片主题与切换等
编辑器·onlyoffice
qq_14030341441 天前
vscode过滤文件
ide·vscode·编辑器
weixin_386468961 天前
openharmony 6.0编译rk3568过程记录
c语言·c++·git·python·vim·harmonyos·openharmony
俊哥工具1 天前
不用安装不收费!多功能U盘修复工具,解决大部分U盘故障
学习·pdf·word·excel·音视频
_oP_i1 天前
Excel 工作簿取消保护
excel