vim 替换文本
程序员文章站
2024-02-21 10:20:10
...
基本语法
:作用范围s/替换查找目标/替换成为/替换目标option
例
:%s/ok/ng/g
:
进入命令模式s
(substitute)查找替换命令
例子中的,%s/ok/ng/g 会在全局范围(%)查找ok并替换为ng
,作用范围内出现的目标都会被替换(g)。
作用范围选项
- 当前行,不写内容
# 作用范围在当前行
:s/ok/ng/g
- 全文,用%
# 作用范围在全文
:%s/ok/ng/g
- 指定行,写上行号;指定某行到某行,用逗号连接行号
# 作用范围在第1行
:1s/ok/ng/g
# 作用范围在第6行到第10行
:6,10s/ok/ng/g
# 作用范围在第6行到最后一行
:6,$s/ok/ng/g
- 利用当前行指定范围,
.
表示当前行+2
表示接下来两行,用逗号来连接
# 当前行到后2行
:.,+2s/ok/ng/g
# 前2行到当前行
:.,-2s/ok/ng/g
# 当前行前面1行,到后面1行
:-1,+1s/ok/ng/g
# 当前行到最后一行
:.,$s/ok/ng/g
- Visual模式手动选区
如何进入Visual模式:按以下v键,再按一下v键即可退出
选好作用范围开始的地方,按v,然后按上↑下↓左←右→即可选区,屏幕是会阴影化选择的范围。
选好范围后按一下冒号 : 进入命令模式。可以发现vim自动补全了作用范围的命令:’<,’>,在其后写剩下的内容即可。
# 作用范围在选定区域
:'<,'>s/ok/ng/g
替换目标option
- 前面出现的
g
,作用范围内的所有目标
:%s/ok/ng/g
- 没有
g
,作用范围内所在行的第1个目标
# 替换全文每一行的第1个 ok 为 ng
:%s/ok/ng/
# 替换当前行的第1个 ok 为 ng
:s/ok/ng/
-
i
表示大小写不敏感查找,I
表示大小写敏感
# 将当前行的第1个OK/ok/Ok/oK 替换成 ng
:s/ok/ng/i
# 将当前行的所有OK/ok/Ok/oK 替换成 ng
:s/ok/ng/gi
# 将当前行的第1个Aok 替换成 ok
:s/Aok/ok/I
-
c
表示替换前弹出确认框
# 作用在全文每行出现的所有 ok 的替换确认
:%s/ok/ng/gc
提示内容:
replace with ng (y/n/a/q/l/^ E/^Y)?
其中,按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。^E 与^Y是光标移动快捷键。
(以上)
上一篇: Java代码实现负载均衡五种算法