Vim:将光标移动到最后的位置

(g)Vim是否可以将光标移到原来的位置(在正常模式下)? 在先前光标位置的列表中来回循环的东西将是理想的。 但也只是切换到最后的位置就足够了(像cd -在目录bash中)。

这里有一个示例:

 line |1| <- cursor position line 2 line 3 line 4 

假设我做了2j ,现在是这样:

 line 1 line 2 line |3| <- cursor position line 4 

现在我想按下一些东西(显然不是2k ),回到第一个位置,可能会回到之前的位置。

最快的方法是击中:

 '' 

(两个撇号)或者:

 `` 

(两个反引号)。 请注意,不同之处在于反引线到达线上的相同位置,而撇号到达线的起点。 在英国键盘上,撇号更容易访问,所以我倾向于使用那个。 这里有很多有用的标记,请参阅:help mark-motions

对于其他一些运动(不是我认为的2j ),还有一个跳转列表,可以让你在多个运动之间来回导航。 Ctrl-OCtrl-I执行此导航,但请参阅:help jump-motions以获取更多信息。

你也可以用g;g,在前一个编辑位置的列表中前后移动。

在我的瑞士和德国的键盘布局上,打字; 不方便地需要使用Shift键。 因此,我将g-定义为g-的更方便的别名g;$MYVIMRC

 " Map g- as an alias for g; nnoremap g- g; 

正确的帮助(:帮助跳转):

:ju [mps]打印跳转列表(不是动作命令)。 {Vi无此function} {没有| +跳转列表| 特征}

  *jumplist* 

跳转logging在跳转列表中。 使用CTRL-O和CTRL-I命令,您可以在较早的跳转之前转到光标位置,然后再返回。 因此,您可以上下移动列表。 每个窗口都有一个单独的跳转列表。 最大条目数固定为100. {没有| +跳转列表| 特征}

为什么没有人知道DrAl的答案? ''或“`不会解决这个post的原始问题! 这两个命令对于像2j这样的一些光标移动不起作用,至less对于我来说。 这会让新手对vim更加困惑。

''或'`, Ctrl+ICtrl+O是基于跳转列表的。 2j不会将位置更改保存到跳转列表中,因此这些命令对于2j不起作用。

''或”在最后位置和当前位置之间切换。 Ctrl+I Ctrl+O通过跳转列表历史logging工作。

g; g,通过编辑位置,这也是非常频繁的使用。