【发布时间】:2015-01-27 10:05:30
【问题描述】:
我想知道 vim 的改进,我可以跳回到我上次停下来移动大约 3 秒的地方。然后我可以滚动并有一个踢快捷方式跳回我使用相同的旧 CTRL+o 的位置。
Vim 在 :jumps 列表中放置了很多动作,我想知道其中的一半对我来说在任何时候都没有用,那么我该怎么做呢?
换句话说,我试图让跳转列表更合理。
ps:Netbeans 和 VS 有类似的行为。
【问题讨论】:
我想知道 vim 的改进,我可以跳回到我上次停下来移动大约 3 秒的地方。然后我可以滚动并有一个踢快捷方式跳回我使用相同的旧 CTRL+o 的位置。
Vim 在 :jumps 列表中放置了很多动作,我想知道其中的一半对我来说在任何时候都没有用,那么我该怎么做呢?
换句话说,我试图让跳转列表更合理。
ps:Netbeans 和 VS 有类似的行为。
【问题讨论】:
要将当前位置自动添加到跳转列表,您可以利用CursorHold 事件:
:autocmd CursorHold * normal! m'
导航使用默认的<C-o> / <C-i>。
【讨论】:
使用m 和' 命令跳转是很常见的。例如,您可以输入mx,然后去做一些事情,然后输入'x 以跳回到您输入mx 时的位置。这适用于字母表中的每个字母(即ma、mb、...mz)。大写标记(mA、mB、...)也会记住文件名,以便您可以在文件之间跳转。有a number of other special marks可以设置成各种用途。
“先前的上下文标记”称为'。跳转时自动设置,也可以用m'手动设置。使用'' 跳转到它。 m' 命令还手动将跳转添加到跳转列表。 '' 大致相当于 Ctrl+O,但不计入。
如果你用反引号替换这些命令中的撇号,Vim 将跳转到特定的列而不仅仅是行。在实践中,撇号更容易输入并且通常足够接近。
【讨论】:
您可以在' 寄存器中设置标记。击键将是m'
我在 vim 的文档 :help jumplist 中找到了这个。
您可以通过使用“m”设置'标记来显式添加跳转。
【讨论】: