在vim中编程时,我经常需要搜索某些内容,将其复制到剪贴板,然后回到原来的位置,将其插入并进行修改。
问题是,在搜索和查找之后,我需要手动找回原来的位置。
是否有一种自动回到上一次搜索位置的方法?
Ctrl+O带我回到先前的位置。不知道搜索之前的位置。
编辑:另外,`.会把你带到上次更改的位置。
:70
和:100
跳转,按一次ctrl+o
会回到原始位置,而不是第70行。 :( - WhyNotHugo使用``
返回到搜索/跳转之前的确切位置,或使用''
返回到搜索/跳转之前所在行的开头。
g;
和g,
,它能跳转到上一个/下一个修改处的位置。 - goetz我一直通过设置标记来完成这个。
在命令模式下,按m[字母]。例如,ma 使用a作为标记标识符在当前行设置标记。
要返回到标记,请按' [字母]。例如,'a将您带回到步骤1中设置的行标记。要返回到标记所在行的列位置,请使用`a(反引号[字母])。
要查看当前设置的所有标记,请键入:marks
。
稍微不相关的是,我刚发现关于标记的另一个巧妙的事情。
假设您通过执行mb跳转到标记b。 Vim会自动将标记'(单引号)设置为跳转到标记b之前所在的任何行。
这意味着您可以通过'b跳转到该标记,然后通过''(2个单引号)返回到之前的位置。
我是通过使用:marks
命令意外发现的,该命令显示所有标记的列表。
你真的应该阅读:help jumplist
,它非常清楚地解释了所有这些。
CTRL+O 和 CTRL+I,用于向前和向后跳转。
nnoremap / ms/
nnoremap ? ms?
如果我使用 /
或者 ?
进行搜索,我可以通过按下 `s
快速返回。你可以将字母 s
替换为任何你喜欢的字母。
m
被定义为除标记之外的其他内容,在NerdTree中,它是菜单。 - Krism[letter]
来设置标记,然后使用'[letter]
回到该标记。