给定以下类似的文件:
blah
blah
collection = getCollection();
process(somethingInTheWay, target);
...在 vim 中执行这个短的 'search' 命令序列之后...
/col<carriage return>
我的光标将位于“collection”第一次出现的位置。
现在,如果我想重新搜索,那么哪个命令会从我的vim命令行中删除“/col”?
给定以下类似的文件:
blah
blah
collection = getCollection();
process(somethingInTheWay, target);
...在 vim 中执行这个短的 'search' 命令序列之后...
/col<carriage return>
我的光标将位于“collection”第一次出现的位置。
现在,如果我想重新搜索,那么哪个命令会从我的vim命令行中删除“/col”?
这里有几个因素起作用。您输入的内容("/col"
)在搜索后会在命令行中额外显示一段时间。通常人们不在意这一点,但是一些人在一段时间后发现这很有帮助。当您按下 Enter 并且 vim 将光标放在第一个匹配项上时,您已经离开了“搜索模式”。vim 会在重新绘制屏幕或需要空间时懒惰地删除搜索字符串。如果您想要手动删除它,有几种方法:
:redraw
现在我写道,您已经通过 Enter 离开了“搜索模式”,但您可以随时使用 n / N 继续进行上一次搜索。这些命令只需获取特殊寄存器 /
中的内容并将其用于进一步搜索。可以通过从 /
中删除上次搜索模式来“禁用”此行为:
:let @/ = ""
您可以手动将某些内容放入寄存器中,这样您就能在没有开始任何搜索的情况下“继续搜索”。
如果您只想要消除当前高亮显示的匹配结果,请键入:
:noh
您可以关闭或切换一般匹配的高亮显示:
:set nohls
:set hls!
后者是一个很好的按键绑定候选项。我用它来切换上次搜索的高亮显示(助记符:klear——不太准确,但对我有用):
:nno <C-k> :set hls!<CR>