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
在vim中,如何回到搜索前的状态?_Vim_Vi - Fatal编程技术网

在vim中,如何回到搜索前的状态?

在vim中,如何回到搜索前的状态?,vim,vi,Vim,Vi,在vim中编程,我经常去搜索一些东西,把它拽出来,然后回到我所在的地方,插入它,修改它 问题是,在我搜索和查找之后,我需要手动找到返回我所在位置的方法 有没有一种方法可以自动返回到上次搜索时的位置?我总是通过设置标记来完成 在命令模式下,按m[字母]。例如,ma使用a作为标记标识符在当前行设置标记 要返回标记,请按[字母]。例如,“a”将返回到步骤1中设置的线标记。要返回到标记行所在行的列位置,请使用`a(回勾[letter]) 要查看当前设置的所有标记,请键入:marks 有一点无关,我刚刚

在vim中编程,我经常去搜索一些东西,把它拽出来,然后回到我所在的地方,插入它,修改它

问题是,在我搜索和查找之后,我需要手动找到返回我所在位置的方法


有没有一种方法可以自动返回到上次搜索时的位置?

我总是通过设置标记来完成

  • 在命令模式下,按m[字母]。例如,ma使用a作为标记标识符在当前行设置标记

  • 要返回标记,请按[字母]。例如,“a”将返回到步骤1中设置的线标记。要返回到标记行所在行的列位置,请使用`a(回勾[letter]

  • 要查看当前设置的所有标记,请键入
    :marks


    有一点无关,我刚刚发现了马克的另一个妙处

    假设您通过执行mb跳转到markb。Vim会自动将标记(这是一个单引号)设置为跳转到标记b之前所在的行

    这意味着你可以做“b”跳转到那个标记,然后做“”(2个单引号)跳转回到你以前所在的位置


    我使用
    :marks
    命令意外发现了这一点,该命令显示了所有标记的列表。

    最简单的方法是使用
    m[letter]
    设置一个标记,然后使用
    “[letter]
    Ctrl+O将我带到上一个位置。搜索前不知道位置


    编辑:还有,`。将带您返回上次所做的更改。

    使用
    `
    跳回搜索/跳转前的确切位置,或者
    '
    跳回搜索/跳转之前所在的行的开头。

    您确实应该阅读
    :帮助跳转列表
    它很好地解释了所有这些。

    我使用这个:

    nnoremap / ms/
    nnoremap ? ms?
    

    然后,如果我使用
    /
    搜索某个内容,我可以通过
    `s
    快速返回。您可以将字母
    s
    替换为您喜欢的任何字母。

    CTRL+O和CTRL+I,用于前后跳跃。

    似乎按住CTRL+O足够多次也会开始让您回顾以前打开的文件。CTRL+O也是我的首选方法。我经常使用它,并希望其他编辑器复制它的行为。是的,CTRL-O和CTRL-I似乎会带你来回走到你去过的地方,很好。只有当你使用标记到达那里时,CTRL+T才会带你回去。如果不使用标记搜索,Ctrl+T将带您回到搜索上一个标记之前的位置。我发现,如果我先跳vía
    :70
    ,然后再跳
    :100
    ,按一下
    Ctrl+o
    ,就会返回到原始位置,而不是第70行:(幸运的是,一个标记通常是不必要的,因为vim会对某些位置进行特殊跟踪,并允许您使用“`、^O等来访问它们。该标记似乎只会将我带到设置该标记的行的开头。):@hermanningjaldson您现在可能已经明白了这一点,但使用“将带您到标记行,“我会带你去确切的地方。当我搜索vim提示时,见到你真是一件乐事。我一直在使用ctrl-o和ctrl-I,因为它更容易、更自动地来回移动。只有在第一次匹配时,查看才起作用,
    n
    -ing到后续匹配意味着您不会跳回开始的位置。如果您搜索并做了更改怎么办?您也可以使用
    g
    g,
    ,它会转到上一个/下一个更改的位置。这里唯一需要注意的是,它会中断在诸如NerdTree之类的窗口中的搜索,其中
    m
    被定义为除mark之外的其他内容,在NerdTree的情况下,它是菜单。我最喜欢这个答案的可能重复,《帮助》中有很多大多数人都不知道的信息(直到最近我才知道),这是一本多么棒的书啊!这非常有用。在你最近去过的地方骑自行车。默认情况下跨缓冲区工作:)