Appearance
百发百中:掌握搜索命令
有一天,你终于厌倦了 h
j
k
l
在字里行间移动,厌倦了 w
b
e
在 屎山 代码中半天跳不到头;你在想,有没有一种方法,可以像东风-41导弹一样指哪打哪,快速去到 同事们写的垃圾 代码中;
恭喜你,你找到了!
今天,我们就来学习搜索命令,打破你的困境。
行内搜索
通常我们在一行代码中时,有可能需要这里编辑一下那里编辑一下,虽然之前讲过的移动光标的命令也基本够用了,但可能在某些情况下,代码比较长之类的,可能用行内搜索命令是不错的方式。
f
+ 字符:自左往右移动光标到下一个匹配的字符中F
+ 字符:自右往左移动光标到下一个匹配的字符中t
+ 字符:自左往右移动光标到下一个匹配的字符的前一个字符中T
+ 字符:自右往左移动光标到下一个匹配的字符的后一个字符中;
:重复执行上一个搜索命令,
: 与上一个命令方向相反地执行上一个搜索命令
使用技巧
普通移动光标的时候使用 f
F
,配合 c
d
v
这些操作时使用 t
T
,如:
this is a simple easy vim tutorial.
如果我们光标在句首,需要跳到 easy 这个单词的字母 e,则直接 fe;
即可(因为 fe
会跳到 simple 的 e,所以需要用 ;
再执行一遍 fe
);
而假如我们需要删除 easy 单词前的内容,则可以使用 d2te
,则句子就变成:
easy vim tutorial.
这里的 2te
是指使用 te
这个指令时的第二个结果,因为上面那句话有两个字母 e,我们要匹配第二个,所以在这个指令前加上数字 2,指令 f
也同理。
全局搜索
在日常开发中,我们用得最多的搜索其实是全局搜索,尤其是在查看一些变量、函数调用情况的时候,而 vim 也提供了方便的全局搜索:
- 从光标位置向下查找:
/
+ 字符 + enter - 从光标位置向上查找:
?
+ 字符 + enter - 查看搜索历史:
/
+ 上下方向键
使用技巧
使用 /
?
查找时不需要输入要搜索的完整文本,就输入前面几个字符就可以了;而且这两个搜索命令是大写不敏感的,比如输入 /ula,都可以匹配到
ULA和
ula;这种特性下,如果我们搜索一个变量,如
text,会匹配到
TextTEXT` 等单词,所以这两个命令是模糊搜索。
在大多数情况下,其实我们更需要的是精确搜索,这时我们可以把光标移到我们需要搜索的单词上,然后按下以下命令:
- 向上查找:
#
- 向下查找:
*
这样就可以愉快地搜索了;我们还可以使用:
n
:跳到下一个结果N
:跳到上一个结果
然后就可以快速查看搜索的结果了,完全不输 vscode 自带的搜索。