vim跳转

标记相关

除了由用户主动使用m来设置位置标记以外,vim还会自动为我们设置标记,例如上次修改、上次跳转、上次高亮等等。

下表列举出了,如何回到这些vim自动标记所在位置

位置标记 含义
'' 当前文件中上次跳转动作之前所处的位置
'. 上次修改的地方
'^ 上次进入插入模式的位置
'[ 上次修改或者复制的起始位置
'] 上次修改或者复制的结尾位置
'< 上次高亮选区的起始位置
'> 上次高亮选区的结尾位置
]m 跳转到下一个方法起始位置
[m 跳转到上一个方法起始位置
[s 跳转到上一个拼写错误单词的位置
ta Ta 同fa Fa,光标位置在目标a的前一格
gd gD 跳转到定义变量处
gd gD 跳转到定义变量处

标记差异

在 Vim 中,''Ctrl-oCtrl-t 都是用于跳转的快捷键,但它们的功能和使用场景有明显区别。

  • '' (两个单引号)‌:这个组合用于在‌当前文件内‌跳转到上一次编辑位置(即光标被修改过的位置)。它会将光标移动到你上次离开该位置的地方,通常用于在编辑后快速返回到之前修改的起点。‌
  • Ctrl-o‌:这个快捷键用于在‌跳转列表‌中向前跳转(即跳转到更早的位置)。当你执行了如 G(跳到文件末尾)、gg(跳到文件开头)、/pattern(搜索)或 Ctrl-](跳转到标签)等跳转命令后,Vim 会记录下这些位置。按 Ctrl-o 可以让你按顺序返回到这些历史位置,类似于浏览器的“后退”按钮。‌
  • Ctrl-t‌:这个快捷键用于在‌标签跳转栈‌中退栈(即返回到上一个标签位置)。它主要用于在阅读代码时,当你使用 Ctrl-] 跳转到一个函数定义或标签后,可以用 Ctrl-t 返回到跳转前的位置。它与 Ctrl-o 类似,但专门用于处理由 Ctrl-] 引发的标签跳转。‌

总结来说:

'':返回到‌上一次编辑‌的位置(仅限当前文件)。
Ctrl-o:返回到‌跳转历史‌中的上一个位置(包括搜索、跳转等)。
Ctrl-t:返回到‌标签跳转‌历史中的上一个位置(专用于代码导航)。

前进后退

Ctrl + o:跳转到编辑历史中的上一个位置(后退)。
Ctrl + i:跳转到编辑历史中的下一个位置(前进,即“取消后退”)。
这两个命令组合起来,就像浏览器的“后退”和“前进”按钮一样,可以在你曾经访问过的位置之间来回切换。

如何“取消”一次后退操作?

‌按 Ctrl + i‌:这是最直接的方式。当你用 Ctrl + o 后退了一步,只需按一次 Ctrl + i,就会回到你后退前的位置。
‌连续按 Ctrl + i‌:如果你连续后退了多次(多次按 Ctrl + o),可以连续按 Ctrl + i 来一步步前进回去。
‌使用 :jumps 查看跳转历史‌:如果你想查看所有可跳转的位置列表,可以在命令模式下输入 :jumps,然后输入数字 + Ctrl + oCtrl + i 来跳转到指定历史点。
⚠️ 注意:Ctrl + oCtrl + i 是‌光标位置跳转‌的快捷键,与撤销/重做编辑内容(uCtrl + r)是完全不同的功能。不要混淆。

总结

操作 快捷键 说明
‌后退‌(上一个位置) Ctrl + o 跳转到之前光标所在的位置
‌前进‌(取消后退) Ctrl + i 回到后退前的位置,即“取消后退”‌
查看跳转历史 :jumps 列出所有可跳转的历史点

因此,要“取消”一次 Ctrl + o 的后退操作,只需按 ‌Ctrl + i‌ 即可。‌

posted @ 2026-01-27 15:50  庶旁  阅读(24)  评论(0)    收藏  举报