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

时间:2008-09-10 12:42:44

标签: vim vi

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

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

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

7 个答案:

答案 0 :(得分:379)

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

编辑:此外,` 将带您进行最后一次更改。

答案 1 :(得分:88)

使用``跳回到您搜索/跳过之前的确切位置,或''跳回到您搜索/跳过之前所在线的起点。< / p>

答案 2 :(得分:37)

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

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

  2. 要返回标记,请按'[letter] 。例如,'a 会将您带回到步骤1中设置的标记。

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


    在一个稍微不相关的说明中,我刚刚发现了另一个关于标记的好东西。

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

    这意味着您可以'b 跳转到该标记,然后执行''(2个单引号)以跳回原来的位置。< / p>

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

答案 3 :(得分:35)

你真的应该阅读:help jumplist它很好地解释了所有这些。

答案 4 :(得分:29)

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

答案 5 :(得分:7)

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

返回标记

答案 6 :(得分:7)

我用这个:

nnoremap / ms/
nnoremap ? ms?

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