Vim

Vim学习笔记 - 常用查找替换命令

Posted by zihengCat on 2018-01-03

前言

本文记录Vim下一些常用的查找与替换操作。

查找(Search)

查找模式通过/?开启,输入查找字符串后按<Enter>回车键进入即可查找,按<Esc>退出键退出查找模式。
如果查找到多个匹配项,可通过查找下一个n与查找上一个N来回跳转。
查找后,查找到的字符串会高亮反显出来(默认,可通过配置文件修改),输入:noh或再搜索一枚文件中不存在的字符串就可以取消高亮。
在查找命令中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。
查找命令支持正则表达式。

查找示例

Command Description
/word 正向(上)查找目标字符串
?word 反向(下)查找目标字符串

查找操作示例

替换(Substitute)

替换操作通过:s(substitute)命令进入,基本格式如下:

:[range] s[ubstitute]/{pattner}/{string}/[flags]

作用范围(range)

命令的开始,写上替换操作的作用范围。

  • %: 全文
  • n, m: 第n行至第m
  • .: 当前行
  • $: 最后行
  • ., $: 当前行至最后一行
  • ., +n: 当前行至其后n
  • '<,'>: Visual选择模式下得到的选区范围(输入:

替换标识符(substitute)

写好范围后接上一个s,指明这是一个替换操作。

分隔符(/)

替换命令一般以/作为分隔符,也可以使用其他符号,同行命令中所用分隔符需要一至。

查找目标(pattner)

你需要替换的原字符串。

替换内容(string)

替换后字符串。

标志位(flags)

  • [空]: 仅替换查找到的第一项(如果有多个匹配项)
  • g: 全局替换(把所有查找到的匹配项都替换掉)
  • i: 忽略大小写
  • I: 大小写敏感(默认)
  • c: 交互式操作(y确认,n取消,a全部替换,q退出)

替换示例

Command Description
:%s/word1/word2/g 全文查找并替换字符串
:n1,n2s/word1/word2/g 第n1行至n2行查找并替换字符串
:%s/\n/\r\n/g 将全文中的UNIX换行符替换为MS-DOS换行符

替换操作示例

参考资料

  • vim 帮助文档(:help :s)