在vim中,我如何回到搜索之前的位置?

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

问题是,在我搜索和找到之后,我需要手动找到回到我所在位置的路。

是否有一种自动的方法可以回到我开始搜索时的位置?

81298 次浏览

我总是通过它来树立一个标杆。

  1. 在命令模式下,按m[letter]。例如,ma使用a作为标记标识符在当前行设置一个标记。

  2. 要返回标记,按' [letter]。例如,'a带您回到步骤1中设置的线标记。要回到标记该行的行的列位置,使用 ' a (反勾[字母])。

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


与此无关的是,我刚刚发现了关于分数的另一个妙处。

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

这意味着你可以执行b来跳转到那个标记,然后执行(2个单引号)来跳转回之前的位置。

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

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

Ctrl+O带我到之前的位置。在搜索之前不知道地点。

编辑:此外,将带您到您所做的最后一次更改。

使用``跳转到搜索/跳转之前的确切位置,或者使用''跳转到搜索/跳转之前所在行的起始位置。

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

我用的是这个:

nnoremap / ms/
nnoremap ? ms?

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

CTRL + OCTRL +我,用于前后跳跃。