Vim是我最喜欢的编辑器,这里记录了Vim的查找及模式
- 查找命令
基本的查找命令有以下几种/{pattern}[/]
/{pattern}/{offset}
?{pattern}[?]
?{pattern}?{offset}
- 查找偏移
基本查找命令/
(?
)在查找结束符/
(?
)之后可以指定一个额外偏移, 行偏移与字符偏移+[num]
行向下, 第1列-[num]
行向上, 第1列e[+num]
从匹配 end 处算起, 字符向右e[-num]
从匹配 end 处算起, 字符向左b[+num]
从匹配 begin 处算起, 字符向右b[-num]
从匹配 begin 处算起, 字符向左
- 重复查找
最近使用的模式和偏移会被记住, 用于重复查找. 重复查找命令/
使用上次的模式与偏移, 重复正向查找//{offset}
使用上次的模式以新指定的偏移, 重复正向查找. 如果偏移置空则不使用任何偏移?
使用上次的模式与偏移, 重复反向查找??{offset}
使用上次的模式以新指定的偏移, 重复反向查找. 如果偏移置空则不使用任何偏移n
重复上次的/
与?
N
重复上次的/
与?
- 单词查找命令
针对于单词的简写查找命令*
正向查找当前光标下(后最近的)单词, 仅匹配完整单词#
反向查找当前光标下(后最近的)单词, 仅匹配完整单词g*
正向查找当前光标下(后最近的)单词, 可匹配单词的一部分g#
反向查找当前光标下(后最近的)单词, 可匹配单词的一部分
- 注意事项
-
查找命令可以计数, 如
5/num
,5*
,5n
-
查找命令可做为移动命令用于操作符之后, 并且为 exclusive 开动作, 除非使用 e 偏移时, 查找会成为 inclusive 闭动作
d/test `从当前光标删到下一个test之前, 但不包含test d2/test `从当前光标删到下面第二个test之前, 但不包含test d/test/e `删除从当前光标删到下一个test之间所有内容, 包含test
-
查找命令默认的查找范围是整个文件, 如果要限定查找范围可采用
/\%>10l\%<20ltest
-
查找命令不能给出匹配次数, 如果要查看匹配次数可以后接
substitute
命令:%s///gn
-
- 单词定界符
<
与>
- 界定匹配的边界
\zs
与\ze
, 例如"\zs[^"]+\ze"
匹配双引号之间的字符