vim 替换文本

基本语法

:作用范围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个大写的OK 替换成小写的 ok
:s/OK/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是光标移动快捷键。

(以上)

发布了26 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Olivia_Vang/article/details/104069982