Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim &引用;“查找下一个”;精神抖擞_Vim_Editing - Fatal编程技术网

Vim &引用;“查找下一个”;精神抖擞

Vim &引用;“查找下一个”;精神抖擞,vim,editing,Vim,Editing,要在Vim中向前搜索cake,我需要键入/cake,但当我按下return键时,光标跳转到第一个匹配项是否有类似于“查找下一个”的Vim命令?下一个为n,上一个为n 如果对?(例如,?cake)使用反向搜索而不是/,则相反 如果它安装在您的系统上,您应该尝试从终端运行vimtutor命令,这将启动基本Vim命令的教程 关于*和#也是非常相关的。键入n将转到下一个匹配。您可能正在寻找n键。Vim中最有用的快捷键IMHO是*键 将光标放在一个单词上,然后按*键,您将跳转到该单词的下一个实例 #键的作

要在Vim中向前搜索
cake
,我需要键入
/cake
,但当我按下return键时,光标跳转到第一个匹配项是否有类似于“查找下一个”的Vim命令?

下一个为n,上一个为n

如果对
(例如,
?cake
)使用反向搜索而不是
/
,则相反

如果它安装在您的系统上,您应该尝试从终端运行
vimtutor
命令,这将启动基本Vim命令的教程


关于*和#也是非常相关的。

键入n将转到下一个匹配。

您可能正在寻找n键。

Vim中最有用的快捷键IMHO是*键

将光标放在一个单词上,然后按*键,您将跳转到该单词的下一个实例

#键的作用相同,但它会跳转到单词的前一个实例


这确实节省了时间。

当我刚开始时,我需要这样做

如何在Vim中搜索
  • 键入
    /
  • 键入搜索词,例如“var”
  • 按回车键
  • 对于下一个实例,按n(对于上一个n)

  • 如前所述,有几种搜索方法:

    /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所指出的。