vim跳转
标记相关
除了由用户主动使用m来设置位置标记以外,vim还会自动为我们设置标记,例如上次修改、上次跳转、上次高亮等等。
下表列举出了,如何回到这些vim自动标记所在位置
| 位置标记 | 含义 |
|---|---|
| '' | 当前文件中上次跳转动作之前所处的位置 |
| '. | 上次修改的地方 |
| '^ | 上次进入插入模式的位置 |
| '[ | 上次修改或者复制的起始位置 |
| '] | 上次修改或者复制的结尾位置 |
| '< | 上次高亮选区的起始位置 |
| '> | 上次高亮选区的结尾位置 |
| ]m | 跳转到下一个方法起始位置 |
| [m | 跳转到上一个方法起始位置 |
| [s | 跳转到上一个拼写错误单词的位置 |
| ta Ta | 同fa Fa,光标位置在目标a的前一格 |
| gd gD | 跳转到定义变量处 |
| gd gD | 跳转到定义变量处 |
标记差异
在 Vim 中,''、Ctrl-o 和 Ctrl-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 + o 或 Ctrl + i 来跳转到指定历史点。
⚠️ 注意:Ctrl + o 和 Ctrl + i 是光标位置跳转的快捷键,与撤销/重做编辑内容(u 和 Ctrl + r)是完全不同的功能。不要混淆。
总结
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 后退(上一个位置) | Ctrl + o |
跳转到之前光标所在的位置 |
| 前进(取消后退) | Ctrl + i |
回到后退前的位置,即“取消后退” |
| 查看跳转历史 | :jumps |
列出所有可跳转的历史点 |
因此,要“取消”一次 Ctrl + o 的后退操作,只需按 Ctrl + i 即可。

浙公网安备 33010602011771号