欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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是光标移动快捷键。

(以上)