关于vi:在vim中,如何在搜索之前回到原来的位置?

In vim, how do I go back to where I was before a search?

在vim中编程,我经常搜索一些东西,猛拉它,然后回到我原来的位置,插入它,修改它。

问题是,在我搜索并找到之后,我需要手动找到回到原来的位置的方法。

有没有自动返回我上次搜索时所在位置的方法?


ctrl+o将我带到上一个位置。搜索前不知道位置。

编辑:同样,`.将带您进入上次所做的更改。


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


我总是通过它来做标记。

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

  • 要返回标记,请按[字母]。例如,"A将带您返回到步骤1中设置的标记。

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

    在一个稍微不相关的笔记上,我发现了关于马克的另一个妙处。

    比方说,你通过"b.vim"自动设置标记(这是一个单引号)来跳转到标记b,在跳转到标记b之前,它是你所处的任何一行。

    这意味着你可以做"B跳到那个标记,然后做"(2个单引号)跳回到你以前所在的地方。

    我无意中使用了:marks命令发现了这个问题,它显示了所有标记的列表。


    你真的应该读一下:help jumplist,它很好地解释了这一切。


    ctrl+octrl+i,用于前后跳跃。


    我用这个:

    1
    2
    nnoremap / ms/
    nnoremap ? ms?

    然后,如果我用/?搜索某个东西,我可以很快用`s返回。你可以把字母s换成你喜欢的任何字母。


    最简单的方法是用m[letter]设置一个标记,然后用'[letter]返回该标记。