在 vim 中编程 我经常去搜索一些东西,拉它,然后回到我原来的位置,插入它,修改它。
问题是,在我搜索并找到之后,我需要手动找到回到我所在位置的路。
是否有一种自动方式可以返回到我上次搜索时的位置?
Ctrl+O带我到上一个位置。在搜索之前不知道位置。
编辑:另外,`.将带您到您所做的最后一次更改。
用于``
跳回您搜索/跳跃之前所在的确切位置,或''
跳回您搜索/跳跃之前所在行的开头。
我总是通过设置标记来完成。
在命令模式下,按m[字母]。例如,使用a作为标记标识符ma在当前行设置标记。
要返回标记,请按'[字母]。例如,'a带您回到步骤 1 中设置的行标记。要返回标记行的行的列位置,请使用`a( back-tick [letter] )。
要查看当前设置的所有标记,请键入:marks
。
在一个稍微不相关的注释上,我刚刚发现了另一个关于标记的好东西。
假设您通过执行跳转到标记bmb。Vim 自动将标记'(即单引号)设置为您在跳转到标记b之前所在的那一行。
这意味着您可以'b跳到该标记,然后执行''(2 个单引号)跳回您之前所在的位置。
我无意中发现了这一点:marks
,该命令显示了所有标记的列表。
你真的应该阅读:help jumplist
它很好地解释了所有这些。
CTRL+O和CTRL+I,用于前后跳跃。
我用这个:
nnoremap / ms/
nnoremap ? ms?
然后,如果我使用/
or搜索某些内容?
,我可以通过 快速返回`s
。您可以将字母替换为s
您喜欢的任何字母。
最简单的方法是用 设置一个标记,m[letter]
然后用 回到它'[letter]