Vim 中查找文本的指令非常强大,是高效使用 Vim 的关键。这里为您整理了从基础到高级的详细指南。
一、最基础、最常用的查找(Normal 模式)
在 Normal 模式下(按 ESC 确保进入),使用以下命令:
-
/(正向搜索)- 用法:输入
/,然后输入要查找的字符串,最后按Enter。 - 示例:查找单词 “apple”
- 按下
/ - 输入
apple - 按下
Enter
- 按下
- 效果:光标会跳转到文档中下一个匹配 “apple” 的位置。
- 用法:输入
-
?(反向搜索)- 用法:输入
?,然后输入要查找的字符串,最后按Enter。 - 示例:反向查找 “apple”
- 按下
? - 输入
apple - 按下
Enter
- 按下
- 效果:光标会跳转到文档中上一个匹配 “apple” 的位置。
- 用法:输入
二、查找后导航
执行一次查找后,您可以轻松地在匹配结果之间移动:
n:跳转到下一个匹配项(与/方向相同)。N:跳转到上一个匹配项(与/方向相反,即与?方向相同)。gn: visually select the next match (very useful for operations on all matches).
记忆技巧:n 是 next,N 是反向的 next。
三、查找当前光标下的单词(超级高效!)
这是一个极其常用的技巧,可以免去手动输入查找词的麻烦。
-
*:正向查找当前光标所在的整个单词。- 光标会跳到下一个完全匹配的单词。例如,光标在 “apple” 上,按下
*不会匹配 “pineapple”。
- 光标会跳到下一个完全匹配的单词。例如,光标在 “apple” 上,按下
-
#:反向查找当前光标所在的整个单词。- 功能和
*一样,只是方向相反。
- 功能和
-
g*: 正向查找当前光标所在的字符串(不要求是完整单词)。- 例如,光标在 “apple” 的 “ppl” 部分,按下
g*会匹配任何包含 “ppl” 的单词,如 “apple”, “pineapple”。
- 例如,光标在 “apple” 的 “ppl” 部分,按下
-
g#: 反向查找当前光标所在的字符串。
四、高级技巧和选项
-
高亮显示(Highlighting)
- 默认情况下,Vim 可能会高亮所有匹配项。
- 关闭高亮:
:nohlsearch或:noh。这只会暂时关闭高亮,直到下一次搜索。 - 永久关闭/开启高亮:
:set nohlsearch:set hlsearch
-
正则表达式查找
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”等)。
-
查找特殊字符
如果要查找的文本包含正则元字符(如.,*,$,/等),需要在它们前面加上反斜杠\进行转义。- 示例:查找 “index.php”
- 应该输入
/index\.php
- 应该输入
- 示例:查找 “index.php”
-
搜索历史
按下/或?后,可以使用 上/下方向键 浏览之前的搜索历史,方便重复之前的搜索。 -
忽略大小写(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。
- 临时忽略:在搜索词中加入
总结表格
| 命令 | 模式 | 作用 |
|---|---|---|
/pattern | Normal | 正向查找字符串 pattern |
?pattern | Normal | 反向查找字符串 pattern |
n | Normal | 跳转到下一个匹配项 |
N | Normal | 跳转到上一个匹配项 |
* | Normal | 正向查找当前光标下的整个单词 |
# | Normal | 反向查找当前光标下的整个单词 |
:noh | Command | 暂时关闭查找高亮(直到下次搜索) |
set hlsearch | Command | 永久开启查找高亮 |
set nohlsearch | Command | 永久关闭查找高亮 |
建议先从 /, ?, n, N, * 这几个最常用的命令开始练习,它们会极大地提升你的编辑效率。

4518

被折叠的 条评论
为什么被折叠?



