介绍Vim搜索命令/?*#,以及Vim正向搜索和反向搜索,Vim正则表达式搜索特定字符和特定行

一、Vim基本搜索命令

在Vim命令模式下,输入/?符号就进入了搜索模式,/用于正向往下搜索,?用于反向往上搜索。

在搜索模式下可以对Vim打开的整个文本内容进行搜索,当按下n时可以继续正向查找下一个相匹配的目前单词。N的作用与n相反,是往上反向搜索目标单词。

Vim搜索

注意:搜索一些特殊的字符,例如:*[]^%/?~$等,需要在它们的前面加上转义符号\

二、Vim设置高亮搜索

为了在Vim中高亮显示被搜索的字符,可以使用命令set hlsearch,可以在Vim尾行模式执行命令或者在.vimrc中进行永久设置

三、Vim其它常用搜索命令

在Vim命令模式下,如果要搜索当前光标下的单词,除了可以使用/?外,还可以使用特殊命令*#

假设光标当前所有单词为the,那么在当前光标位置执行命令*相当于搜索命令/\<the\>,命令#等同于命令?\<the\>

大家可仔细观看下图的Vim动画教程示意
Vim搜索

四、Vim正则表达式搜索

为了更好的进行搜索,Vim支持正则表达式,最基本的正则表达式规则包括:

^         表示一行的开头
$         表示一行的结尾
.         表示任意一个字符
*         匹配0次或n次

4.1 查找在行首的特定字符

Vim正则表达式搜索
上图中用^来匹配行首

4.2 查找在行尾的特定字符

Vim正则表达式搜索
上图中用$来匹配行尾

4.3 匹配特定行(行首匹配)

Vim正则表达式搜索
上图中使用了/^test.*$,其中^表示匹配行首、.*表示匹配任意字符、$表示匹配行尾,合起来表示搜索任意以test开头的行