Skip to content

Latest commit

 

History

History
57 lines (50 loc) · 2.5 KB

Vim_search_patterns_note.md

File metadata and controls

57 lines (50 loc) · 2.5 KB

Vim pattern search

Vim是我最喜欢的编辑器,这里记录了Vim的查找及模式

查找命令

  1. 查找命令
    基本的查找命令有以下几种
    • /{pattern}[/]
    • /{pattern}/{offset}
    • ?{pattern}[?]
    • ?{pattern}?{offset}
  2. 查找偏移
    基本查找命令/(?)在查找结束符/(?)之后可以指定一个额外偏移, 行偏移与字符偏移
    • +[num] 行向下, 第1列
    • -[num] 行向上, 第1列
    • e[+num] 从匹配 end 处算起, 字符向右
    • e[-num] 从匹配 end 处算起, 字符向左
    • b[+num] 从匹配 begin 处算起, 字符向右
    • b[-num] 从匹配 begin 处算起, 字符向左
  3. 重复查找
    最近使用的模式和偏移会被记住, 用于重复查找. 重复查找命令
    • / 使用上次的模式与偏移, 重复正向查找
    • //{offset} 使用上次的模式以新指定的偏移, 重复正向查找. 如果偏移置空则不使用任何偏移
    • ? 使用上次的模式与偏移, 重复反向查找
    • ??{offset} 使用上次的模式以新指定的偏移, 重复反向查找. 如果偏移置空则不使用任何偏移
    • n 重复上次的/?
    • N 重复上次的/?
  4. 单词查找命令
    针对于单词的简写查找命令
    • * 正向查找当前光标下(后最近的)单词, 仅匹配完整单词
    • # 反向查找当前光标下(后最近的)单词, 仅匹配完整单词
    • g* 正向查找当前光标下(后最近的)单词, 可匹配单词的一部分
    • g# 反向查找当前光标下(后最近的)单词, 可匹配单词的一部分
  5. 注意事项
    • 查找命令可以计数, 如 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

匹配模式

  1. 单词定界符<>
  2. 界定匹配的边界\zs\ze, 例如"\zs[^"]+\ze" 匹配双引号之间的字符