gg跳首行、g跳末行是vim中最稳最快的方式,原生支持所有版本,不依赖配置或终端环境,精准定位行首且可加数字跳指定行。

直接按 gg 跳首行,G(Shift+g)跳末行——这是最稳、最快、兼容性最好的方式,不需要额外配置,所有 Vim 版本都支持。
为什么 gg 和 G 是首选
它们是 Vim 原生的普通模式命令,不依赖终端按键映射或 .vimrc 配置,也不受 SSH 连接、tmux、老旧终端影响。相比 :1 或 :$,少敲冒号和回车;相比 Ctrl+Home,不因终端设置失效。
-
gg:光标精准落到第 1 行第 1 列(即第一个字符位置) -
G:光标落到最后一行第 1 列(注意不是行尾,如需行尾再补按$) - 两者都可在前面加数字,比如
5gg跳到第 5 行,100G跳到第 100 行
:1 和 :$ 命令模式能用,但有细节差异
输入 :1<enter></enter> 确实跳首行,:$<enter></enter> 跳末行,但要注意:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
:1和:0效果一样(Vim 中行号从 1 开始,:0是兼容旧 vi 的写法,实际也跳第 1 行) -
:$是“最后一行”的绝对地址,但如果你刚删了最后一行,:$会自动指向新的末行,而G行为一致 - 在远程服务器上频繁使用命令模式,容易误输成
:q或:w导致意外退出或保存
别踩这些坑
新手常卡在这几个地方:
- 按了
gg没反应?先确认是否在普通模式——按一次Esc再试 -
Ctrl+Home在很多终端(尤其是 Windows 上的 PuTTY、WSL 默认终端)根本没绑定,不要依赖它 - 用
/^搜索行首再按n回溯,看似灵活,但遇到开头全是空行时,光标会停在第一个空白行,不是真正内容首行 - 标记(如
ma+'a)适合来回跳固定位置,不适合“跳首/末行”这种通用需求,多一步操作还容易忘设标记
真正需要反复跳转首尾的场景(比如看日志头尾、改配置文件开头和结尾),gg 和 G 是肌肉记忆级操作——练三次就刻进手指里了。其他方法要么多打字,要么不稳定,没必要绕路。










