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

时间:2020-03-05 18:50:41  来源:igfitidea点击:

在vim中编程我经常去寻找东西,将其拉出,然后回到原处,插入并修改它。

问题是,在搜寻之后,我需要手动找到回到原处的方式。

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

解决方案

回答

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

  • 在命令模式下,按m [字母]。例如,m a使用a作为标记标识符在当前行设置标记。
  • 要返回标记,请按'[字母]。例如," a"可将我们带回到步骤1中设置的标记。

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

在一点不相关的注解上,我发现了关于商标的另一种奇妙的东西。

假设我们通过执行'b跳到标记b。 Vim会自动将标记'(即单引号)设置为我们所在的那一行,然后再跳转到标记b。

这意味着我们可以执行'b跳至该标记,然后执行''(2个单引号)跳回到以前的状态。

我偶然发现了:marks命令,它显示了所有标记的列表。

回答

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

回答

Ctrl + O带我到上一个位置。搜索之前不知道位置。

编辑:另外,``.`将带我们到我们所做的最后更改。

回答

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

回答

我们确实应该阅读:help jumplist,它很好地解释了所有这些。