Vim - 回到上一个位置

92

假设我在vim中打开一个文件。我从第1行第1列开始,按住j直到到达第14行。按下:7CR将光标移动到第7行。我按下yy进行“复制”。

如何返回到第14行?使用CTRL+o会将光标带回文件顶部。``也会得到相同的结果。

6个回答

119

你可以输入 7G 跳转到第七行,然后输入 Ctrl-o 返回之前的位置。
输入 :set showcmd 来在右下角显示你所输入的内容。


要复制第七行(无需移动光标):

:7y
将第7行粘贴到第14行下方:
:7t14

2
我很喜欢使用 7G'' 的组合。我甚至作为奖励学会了 showcmd - deadghost
47
Ctrl+o 非常有用,但知道它的相反操作 Ctrl+i 也很好。Ctrl+o 可以带你回到跳转列表中的“后退”位置,而 Ctrl+i 则可以带你前进。更多信息请参考:help jumplist - Magnun Leno
1
我发现删除第一行的编号 :t14 将会把当前行粘贴到第14行下面。 - tsukimi
Ctrl+o 插入新行。 - towry
@towry请以正常模式完成。 - kev

55
<C-o><C-i>允许您向上或向下跳转历史记录。它们适用于“跳转”命令,但不适用于使用大量按键如jjjjjjjjjjj的情况。
为了利用这个功能—并在此过程中节省大量时间和按键—建议您养成更好的代码导航方式的习惯: /?^$fFtTbBeEwW{}等。
是的,还要使用标记。

35

另一种方法:要跳回到另一行,你可以使用''。这类似于为某些跳转动作设置的自动标记。


3
更精确地说,你可以使用 (两个反引号)来实现。而 ' ' 则会定位到前一行的开头。 - Gautam

26

为什么不使用ma设置标记, 然后使用`a'a在以后返回它呢?


12

使用ma标记你最初所在的行,然后使用'a返回该位置。


3

如果您想返回到先前的位置,首先需要使用标记(m)命令将该位置标记为任何字母a-z或A-Z,例如ma将某个位置标记为“a”。

要返回到该位置,您需要输入`a。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接