Vim匹配
按模式匹配还是按原义匹配
Tip 72 Tune the Case Sensitivity of Search Patterns
调整搜索大小写敏感度
全局区分大小写
通过设置 :set ignorecase 选项即可开启忽略大小写。需要注意的是, 此设置会对 Vim 关键词补全有一定的影响。
每次搜索区分大小写
可以使用以下选项来覆盖默认的是否忽略大小写:
\c - 忽略大小写
\C - 区分大小写
每次搜索的时候都可以强制指定是否区分大小写。注意:在替换时\c标志位为手工确认。
启用智能大小写
Vim 提供了预测我们大小写敏感意图的 smartcase 选项, :set smartcase
启用此选项后进行搜索时,
如果输入的全部是小写字母, 那么就不区分大小写;
但只要包含大写字母, 那么就是大小写敏感的
Tip 73 Use the \v Pattern Switch for Regex Searches
按正则表达式查找时,使用 \v 模式开关 (开启字符的特殊含义)
我们可以使用 \v 模式(very magic search)开关规范所有的特殊符号, 启用之后, 除了下划线 _, 大小写字母, 和数字外, 所有的字符都具有特殊含义。
Tip 74 Use the \V Literal Switch for Verbatim Searches
按原义查找文本时,使用 \V 原义开关 (开启字符的特殊含义)
在正则表达式中使用的特殊字符,在按模式查找时用起来很顺手,但如果我们想
按原义查找文本时,它们就变成了阻碍。使用 very nomagic 原义开关,可以消除附
加在 .、 * 以及 ? 等大多数字符上的特殊含义。
使用原义开关 \V,即可激活 very nomagic 搜索模式
例如:搜索匹配“a.k.a.”字符串
/ \Va.k.a.
我们也可以使用转义的方式来消除字符的特殊含义。例如:
/ a.k.a.
使用 “\V” 会使得其后的模式中只有反斜杠有特殊的意义,显然更方便。
Tip 76 Stake the Boundaries of a Ward
界定单词的边界
定义一个搜索模型时, 指定单词的开始和结束位置可能很有用, Vim 给我们提供了单词分隔的选项。
例如执行搜索 /the
如果我们想只搜索 the 完整的单词, 而不需要包含 the 片段的词, 那么我们需要指定 词的边界。
在 \v 模式下(开启字符特殊含义), < 和 > 即代表词边界的符号. 所以我们可以使用 /\v
需要注意的是, 如果我们在 \v 模式下需要匹配 <> 字符, 那么就得加反斜杠来进行转义了。
Tip 78 Escape Problem Characters
转义问题字符
在 /V 纯文本模式下可以很容易的来进行纯文本的搜索匹配, 因为绝大部分的字符(如:. + *等)的特殊含义都被禁用了, 但是仍然有极少字符仍然有特殊的含义。
这时要用 \ 进行转义。
正向搜索转义斜杠 ‘/ ’
正向搜索时, 斜杠 / 字符被解释为终止符, 所有在此字符之后的内容都会被忽略,替换模式下在 \ 字符后添加标志位。
在 \v 和 \V 模式下, 如果要匹配 / 字符, 那么需要进行转义。
反向搜索转义问号 ‘ ? ’
当使用反向搜索的时候, 问号 ? 就是搜索的终止符。如果要匹配 ?号,需要转义 ?
每次都转义反斜杠 ‘ \ ’
\ 是需要进行转义的. 通常情况下, 反斜杠 \ 之后的那个字符表示被转义的特殊含义. 所以要匹配反斜杠字符的话就需要加转义, 也就是: \
而且,不管正向还是反向搜索,要匹配 \ 都是需要转义的。
终止符( / 或 ? )
Vim 允许在搜索字段终止符后面追加某些标志来调整搜索命令的行为
例如 /vim/e