Answers:
最快的方法是:
''
(两个撇号)或:
``
(两个反引号)。请注意,不同之处在于反引号移至行中的相同位置,而撇号则移至行的开头。在英国键盘上,撇号更易于访问,因此我倾向于使用该撇号。有很多有用的标记,例如,请参见:help mark-motions
。
对于其他一些动作(2j我认为不是),还有一个跳转列表,可让您在多个动作之间来回导航。 CtrlO并CtrlI进行此导航,但请参阅:help jump-motions
参考资料。
j
连续按两次(现在我在第3行),然后按double backtick进入我的第1行,我期望它移动到第2行
i j k l
运动以外的任何运动命令时,才会更新跳转列表(即,记录了先前的光标位置)。(来自帮助文档的完整列表为"'"', "`", "G", "/", "?", n", "N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", H" and the commands that start editing a new file
。)因此,这不会“撤消” 2j
或类似操作,但几乎可以用于其他所有功能。这是有道理的,因为2j
等。已经具有简单的反转(2k
,等),而其他的则没有。
您也可以在上一个编辑位置的列表中使用g;
和g,
来回移动。
在我的瑞士和德国键盘布局上,键入;
不便需要使用Shift按键。因此,我定义g-
为一个更方便的别名g;
中$MYVIMRC
:
" Map g- as an alias for g;
nnoremap g- g;
为什么没人能用DrAl的答案解决问题?该''或``不会解决这个帖子的原始问题!2j至少对于我来说,这两个命令不适用于某些光标移动。这会让新手更加困惑。
''或``,和CtrlI或的行为 CtrlO基于跳转列表。该2j不会保存位置改变到跳转列表,以便这些命令不会工作2j。
''或``在最后位置和当前位置之间切换。 CtrlI并CtrlO查看跳转列表的历史记录。
g;并g,浏览也经常使用的编辑位置。
从帮助开始(:help jump):
:ju [mps]打印跳转列表(不是运动命令)。{Vi无此功能} {如果没有| + jumplist |,则不可用 特征}
*jumplist*
跳转记忆在跳转列表中。使用CTRL-O和CTRL-I命令,您可以在较旧的跳转之前转到光标位置,然后再次返回。因此,您可以在列表中上下移动。每个窗口都有一个单独的跳转列表。条目的最大数量固定为100。{如果没有| + jumplist |,则不可用。特征}