【发布时间】:2010-09-08 09:49:14
【问题描述】:
在 vim 中编程我经常去搜索一些东西,拉取它,然后回到原来的位置,插入它,修改它。
问题是,在我搜索并找到之后,我需要手动找到回到原来位置的路。
是否有自动返回到我上次搜索时的位置的方法?
【问题讨论】:
在 vim 中编程我经常去搜索一些东西,拉取它,然后回到原来的位置,插入它,修改它。
问题是,在我搜索并找到之后,我需要手动找到回到原来位置的路。
是否有自动返回到我上次搜索时的位置的方法?
【问题讨论】:
我总是通过设置标记来完成。
在命令模式下,按 m[字母]。例如,ma 使用 a 作为标记标识符在当前行设置标记。
要返回标记,请按 ' [字母]。例如,'a 将带您回到步骤 1 中设置的行标记。要返回标记行的行的列位置,请使用 `a(反引号[字母])。
要查看当前设置的所有标记,请输入 :marks。
在一个稍微不相关的笔记上,我刚刚发现了另一个关于标记的好东西。
假设您通过执行 mb 跳转到标记 b。 Vim 自动将标记 ' (即单引号)设置为您在跳转到标记 b 之前所在的那一行。
这意味着您可以执行 'b 跳转到该标记,然后执行 ''(2 个单引号)跳转回到你以前的任何地方。
我使用:marks 命令意外发现了这一点,该命令显示了所有标记的列表。
【讨论】:
使用`` 跳转回您搜索/跳转之前所在的确切位置,或使用'' 跳转回您搜索/跳转之前所在行的开头。
【讨论】:
n-ing 到随后的比赛意味着你不会跳回到你开始的地方。
g;和g,,它转到上一个/下一个变化的位置。
CTRL+O和CTRL+I,用于前后跳转。
【讨论】:
我用这个:
nnoremap / ms/
nnoremap ? ms?
然后,如果我使用/ 或? 搜索某些内容,我可以通过`s 快速返回。您可以将字母 s 替换为您喜欢的任何字母。
【讨论】:
m 被定义为标记以外的东西,在 NerdTree 的情况下它是菜单。
Ctrl+O 将我带到上一个位置。在搜索之前不知道位置。
编辑:另外,`. 会将您带到您所做的最后更改。
【讨论】:
:70然后:100,按一次ctrl+o会回到原来的位置,not第70行。: (
你真的应该阅读:help jumplist,它很好地解释了这一切。
【讨论】:
最简单的方法是设置一个标记,用m[letter],然后用'[letter]返回它
【讨论】: