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 自带的搜索。
Just Vim It