Vim查找文本指令详解

Vim 中查找文本的指令非常强大,是高效使用 Vim 的关键。这里为您整理了从基础到高级的详细指南。

一、最基础、最常用的查找(Normal 模式)

在 Normal 模式下(按 ESC 确保进入),使用以下命令:

  1. /(正向搜索)

    • 用法:输入 /,然后输入要查找的字符串,最后按 Enter
    • 示例:查找单词 “apple”
      1. 按下 /
      2. 输入 apple
      3. 按下 Enter
    • 效果:光标会跳转到文档中下一个匹配 “apple” 的位置。
  2. ?(反向搜索)

    • 用法:输入 ?,然后输入要查找的字符串,最后按 Enter
    • 示例:反向查找 “apple”
      1. 按下 ?
      2. 输入 apple
      3. 按下 Enter
    • 效果:光标会跳转到文档中上一个匹配 “apple” 的位置。

二、查找后导航

执行一次查找后,您可以轻松地在匹配结果之间移动:

  • n:跳转到下一个匹配项(与 / 方向相同)。
  • N:跳转到上一个匹配项(与 / 方向相反,即与 ? 方向相同)。
  • gn: visually select the next match (very useful for operations on all matches).

记忆技巧nnextN 是反向的 next。


三、查找当前光标下的单词(超级高效!)

这是一个极其常用的技巧,可以免去手动输入查找词的麻烦。

  • *正向查找当前光标所在的整个单词

    • 光标会跳到下一个完全匹配的单词。例如,光标在 “apple” 上,按下 * 不会匹配 “pineapple”。
  • #反向查找当前光标所在的整个单词

    • 功能和 * 一样,只是方向相反。
  • g*: 正向查找当前光标所在的字符串(不要求是完整单词)。

    • 例如,光标在 “apple” 的 “ppl” 部分,按下 g* 会匹配任何包含 “ppl” 的单词,如 “apple”, “pineapple”。
  • g#: 反向查找当前光标所在的字符串。


四、高级技巧和选项

  1. 高亮显示(Highlighting)

    • 默认情况下,Vim 可能会高亮所有匹配项。
    • 关闭高亮:nohlsearch:noh。这只会暂时关闭高亮,直到下一次搜索。
    • 永久关闭/开启高亮
      • :set nohlsearch
      • :set hlsearch
  2. 正则表达式查找
    Vim 的查找支持非常强大的正则表达式(Magic 模式默认开启)。

    • ^apple: 查找以 “apple” 开头的行。
    • apple$: 查找以 “apple” 结尾的行。
    • a.ple: 点号 . 匹配任意一个字符(如 “akple”, “axple”)。
    • appl[ae]: 匹配 “appla” 或 “apple”。
    • appl[^e]: 匹配 “appla”, “applu” 等,但不匹配 “apple”。
    • a*p* 表示前面的字符(这里是 ‘a’)出现 0 次或多次(匹配 “p”, “ap”, “aap”, “aaap”等)。
  3. 查找特殊字符
    如果要查找的文本包含正则元字符(如 ., *, $, /等),需要在它们前面加上反斜杠 \ 进行转义。

    • 示例:查找 “index.php”
      • 应该输入 /index\.php
  4. 搜索历史
    按下 /? 后,可以使用 上/下方向键 浏览之前的搜索历史,方便重复之前的搜索。

  5. 忽略大小写(Ignore Case)

    • 临时忽略:在搜索词中加入 \c 会忽略大小写,加入 \C 会强制区分大小写。
      • /apple\c 会匹配 “Apple”, “APPLE”, “apple”。
    • 全局设置
      • :set ignorecase:set ic 开启忽略大小写。
      • :set noignorecase:set noic 关闭忽略大小写。
      • :set smartcase:set scs: 一个智能选项。如果搜索模式中包含大写字母,则区分大小写;如果全是小写,则不区分。通常与 ignorecase 搭配使用::set ic scs

总结表格

命令模式作用
/patternNormal正向查找字符串 pattern
?patternNormal反向查找字符串 pattern
nNormal跳转到下一个匹配项
NNormal跳转到上一个匹配项
*Normal正向查找当前光标下的整个单词
#Normal反向查找当前光标下的整个单词
:nohCommand暂时关闭查找高亮(直到下次搜索)
set hlsearchCommand永久开启查找高亮
set nohlsearchCommand永久关闭查找高亮

建议先从 /, ?, n, N, * 这几个最常用的命令开始练习,它们会极大地提升你的编辑效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值