Vim &引用;“查找下一个”;精神抖擞
要在Vim中向前搜索Vim &引用;“查找下一个”;精神抖擞,vim,editing,Vim,Editing,要在Vim中向前搜索cake,我需要键入/cake,但当我按下return键时,光标跳转到第一个匹配项是否有类似于“查找下一个”的Vim命令?下一个为n,上一个为n 如果对?(例如,?cake)使用反向搜索而不是/,则相反 如果它安装在您的系统上,您应该尝试从终端运行vimtutor命令,这将启动基本Vim命令的教程 关于*和#也是非常相关的。键入n将转到下一个匹配。您可能正在寻找n键。Vim中最有用的快捷键IMHO是*键 将光标放在一个单词上,然后按*键,您将跳转到该单词的下一个实例 #键的作
cake
,我需要键入/cake
,但当我按下return键时,光标跳转到第一个匹配项是否有类似于“查找下一个”的Vim命令?下一个为n,上一个为n
如果对?
(例如,?cake
)使用反向搜索而不是/
,则相反
如果它安装在您的系统上,您应该尝试从终端运行vimtutor
命令,这将启动基本Vim命令的教程
关于*和#也是非常相关的。键入n将转到下一个匹配。您可能正在寻找n键。Vim中最有用的快捷键IMHO是*键 将光标放在一个单词上,然后按*键,您将跳转到该单词的下一个实例 #键的作用相同,但它会跳转到单词的前一个实例
这确实节省了时间。当我刚开始时,我需要这样做 如何在Vim中搜索
/
如前所述,有几种搜索方法:
/pattern
?pattern
* (and g*, which I sometimes use in macros)
# (and g#)
另外,使用N和N导航上一个/下一个
您还可以通过使用/
拉起搜索提示,然后使用C-p
/C-n
循环来编辑/调用搜索历史记录。更有用的是q/
,它将带您进入一个窗口,您可以在其中导航搜索历史记录
还需要考虑最重要的'hlsearch'
(键入:hls
以启用)。这使得查找模式的多个实例变得更加容易。您甚至可能希望通过以下方式使您的火柴格外明亮:
hi Search ctermfg=yellow ctermbg=red guifg=...
但是你可能会因为屏幕上持续的黄色匹配而发疯。因此,您经常会发现自己在使用:noh
。这一点非常普遍,因此映射是有序的:
nmap <leader>z :noh<CR>
nmap z:noh
我很容易记住这一个是
z
,因为我过去经常键入/zz
(这是一种快速键入的不常见情况)来清除突出显示。但是:noh
映射要好得多。如果在按“/wordforsearch”之类的键后按Ctrl+Enter,则可以在当前行中找到单词“wordforsearch”。然后按n键进行下一场比赛;按N键进行上一次匹配。习惯使用:help
:help/
显示有关搜索的帮助,您的问题的答案会在页面下方显示一点。如果答案不明显,n
和n
会在按下*
后引导您向前和向后搜索*
匹配项。(或者你可以继续按*
向前或#
向后,但使用那些移动的键通常是次优的。)@Herbert,实际上n和n不会让你“向前”和“向后”响应。正如@Xavier在上面指出的,n是下一个,n是上一个。通过使用“/”键和“?”键或“*”键和“#”键来控制向前和向后搜索。我不认为*这有用吗。。。大多数时候,我都在搜索一个单词的片段(例如,函数名的一部分)。我不想/Func
,让我去SomeFunc
,然后当Func
的下一个实例在SomeOtherFunc
中时按“*”键转到SomeFunc
的下一个实例。更糟糕的是,对于C++,我发现它不从方法调用到方法实现,因为<代码> /\<代码>不匹配<代码>“CalthNo::FoE())< /C>即文件aa-aaa
。搜索/aa
,必须匹配。在第一次匹配时,按*
更改搜索词。n不是“下一步”,而是“重复上次搜索”。因此,输入?var将开始从当前位置向上搜索“var”。而“N”实际上是“在相反的方向重复上一次搜索”,因此在本例中,它将从当前位置向下搜索“var”。如果您受到q/
的启发,您还应该玩q:
。两者都很方便!(虽然与这个问题无关)谢谢你,迈卡。我已经知道“q:”了,虽然我不怎么用它。但是在我的vim教育中,“q/”被完全忽略了,我认为它会有很多用处。@XavierT。任何想法,我如何能跳转一个固定数量的搜索结果。我的意思是,比如跳到第十场比赛line@GPcyborg:n
与大多数vim操作员一样,可以在其前面加上一个数字以重复该命令。如果键入10n
,它将移动到第10个结果(在初始结果之后)。它也适用于所有运动操作符,如3j
,向下三行。“当我们执行搜索时,Vim从当前光标位置向前扫描,在找到的第一个匹配项上停止。”正如实际的Vim所指出的。