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-O
和Ctrl-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+I
或Ctrl+O
是基于跳转列表的。 2j
不会将位置更改保存到跳转列表中,因此这些命令对于2j
不起作用。
''
或”在最后位置和当前位置之间切换。 Ctrl+I
Ctrl+O
通过跳转列表历史logging工作。
g;
g,
通过编辑位置,这也是非常频繁的使用。