【vim进阶】VIM处理文本的替换(底行模式){ 格式 :{作用范围}s/{替换目标}/{替换内容}/{替换的标志} }
VIM 处理文本的替换(底行模式)
- 语法格式:
:{作用范围}s/{替换目标}/{替换内容}/{替换的标志}
-
作用范围分为当前行、全文、选区等等:
-
s:当前行替换
-
%s:全文替换
-
n1,n2s:指定行替换,替换n1:n2间所有行的目标。
-
‘<,’>s:指定区域替换
-
-
替换标志有g,i,I,c和空标志:
-
g:表示一次替换作用范围内所有的目标。
-
空标志:只替换作用范围内,每行第一次出现的目标。
-
i:不敏感查找,不区分大小写。
-
I:敏感查找,区分大小写。(默认状态)
-
c:表示替换前需进行确认。
-
-
作用范围:
-
s
:s/zempty/handsome/g
将会把当前光标所在行的 zempty 替换成 handsome
-
%s
:%s/zempty/handsome/g
将会把全文中的 zempty 替换成 handsome
-
n1,n2s
:n1,n2s/zempty/handsome/g
这里的 n1 和 n2 值得是行号,将会替换掉 n1 到 n2 的所有 zempty 为 handsome.
-
‘<,’>s
选区,在可视模式下选择区域后输入
:
,VIM 会自动补全为:'<,'>
。:'<,'>s/zempty/handsome/g
这个操作咋一看起来有点懵逼,这个操作是可视模式 (Visual-mode) 下选区中的替换操作,可视模式下输入
:
会自动补全:'<,'>
这个是可视范围下的操作范围,类似于 % 和 n1,n2,代表操作的文本范围,上面的例子就是替换掉可视区域的 zempty 为 handsome。
-
-
替换的标志
-
上文中命令结尾的
g
即是替换标志之一,表示全局global
替换(即替换目标的所有出现)。 还有很多其他有用的替换标志: -
空替换标志表示只替换作用范围内,每行第一次出现的目标。
:s/zempty/handsome
作用于当前行,仅仅替换第一次匹配 zempty 的地方为handsome 。
:%s/zempty/handsome
替换掉文件中所有行第一次出现 zempty 的地方为 handsome 。
-
i 表示大小写不敏感查找,I 表示大小写敏感:
:%s/zempty/handsome/i
替换掉所有行第一个出现 zempty (不区分大小写) 为 handsome 。
:%s/zempty/handsome/gi
替换掉所有行出现 zempty (不区分大小写) 为 handsome 。
-
c 表示需要确认,例如全局查找"zempty"替换为"handsome"并且需要确认:
:%s/zempty/handsome/gc
-