Vim 操作-替换

发布时间 2023-12-23 13:04:16作者: 若澧风

Vim 操作-替换

substitute

:[range]s[ubstitute]/{pattern}/{string}/{flag}
  • 替换的操作范围以为基础;
  • %-全局范围,m,n-使用逗号隔开的 m 到 n 范围,. 表示当前操作行;
  • 特殊字符需要用转义符号 \,如 \s\/

1. Range 设定

  • :%s/.../g,对当前文本的每一行操作

  • :m,ns/.../g,对 m 行到 n 行执行操作;

  • :m,$s/.../g,对 m 行到最后一行执行操作;

  • :0,ms/.../g,对首行到 m 行执行操作;

  • :.,$s/.../g,对当前行到最后一行执行操作;

:%s/foo/bar/g  # 在全局范围内(%)查找foo并将之替换为bar,所有出现都会被替换(g)
:s/foo/bar/g  # 在当前行内查找foo并将之替换为bar,所有出现都会被替换(g)
:'<,'>s/foo/bar/g  # 在选区内进行替换,Visual模式下选择区域后输入会自动补全'<,'>

:10,$s/demo/substring/g # 从第10行到最后一行进行替换
:10,$s/demo//g # 从第10行到最后一行进行替换,将demo替换为空

:.,$s/demo//g # 从当前行到最后一行进行替换,将demo替换为空
:0,.s/demo//g # 从首行到当前行进行替换,将demo替换为空

2.删除空格

基本格式 :s/.../g

  • ^\s*$\n\s*- 匹配0个或多个空白字符,\n: 匹配换行符;
  • // 表示替换为空;
:%s/^\s*$\n//g # 含义同上
:.,$s/^\s*$\n//g
:'<,'>s/^\s*$\n//g

3.替换确认

c: confirm,与 g 进行配合设置

:10,$s/demo/substring/gc # 从第10行到最后一行进行替换