在vim中编程我经常去寻找东西,猛拉它,然后回到原处,插入,修改它。
问题是,在我搜索并找到之后,我需要手动找回原来的路。
有没有一种自动方式可以回到我上次搜索时的状态?
答案 0 :(得分:379)
Ctrl + O 将我带到上一个位置。在搜索之前不知道位置。
编辑:此外,` 。将带您进行最后一次更改。
答案 1 :(得分:88)
使用``
跳回到您搜索/跳过之前的确切位置,或''
跳回到您搜索/跳过之前所在线的起点。< / p>
答案 2 :(得分:37)
我总是通过设置标记来完成。
在命令模式下,按 m [letter] 。例如, m a 使用 a 作为标记标识符在当前行设置标记。
要返回标记,请按'[letter] 。例如,'a 会将您带回到步骤1中设置的标记。
要查看当前设置的所有标记,请键入:标记。
在一个稍微不相关的说明中,我刚刚发现了另一个关于标记的好东西。
假设您通过'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
替换为您喜欢的任何字母。