home 和 end 键是 vscode 中原生支持的行首行尾光标控制键,macos 需配合 fn 或用 ctrl+a/e 替代,windows/linux 直接可用;注意系统快捷键冲突、vim 模式覆盖及 editor.cursoratendofline 配置陷阱。

Home 和 End 键就是最直接的答案,无需配置、不依赖插件、跨平台可用。 macOS 上需注意物理键盘差异,但行为一致;Windows/Linux 用户直接按即可,不存在“一键切换”的隐藏逻辑——它本来就是两个独立按键,各司其职。
Home / End 键在 VSCode 中的真实行为
VSCode 默认将 Home 映射为「移动到当前行行首」,End 映射为「移动到当前行行尾」。这不是模拟或插件功能,而是编辑器原生支持的光标控制命令:
-
Home:光标跳到当前行第一个非空白字符前(若启用了editor.cursorAtEndOfLine,可能失效) -
End:光标跳到当前行最后一个字符后(含空格,不含换行符) - 在 macOS 妙控键盘上,
Home/End键通常被隐藏,需配合Fn键触发;也可用Ctrl + A(行首)、Ctrl + E(行尾)替代(终端模式下更稳定)
为什么 Cmd+← / Cmd+→ 在 macOS 上有时不生效?
macOS 系统级快捷键会劫持 Cmd + ← 和 Cmd + →,默认绑定为「切换桌面空间」。VSCode 无法覆盖该系统行为,除非手动禁用:
- 进「系统设置 > 键盘 > 快捷键 > 调度中心」,关闭「将窗口移至左侧/右侧空间」
- 重启 VSCode 后,
Cmd + ←才真正触发cursorHome,Cmd + →触发cursorEnd - 若仍无效,检查是否启用了 Vim 插件:Vim 模式下
0(行首)、$(行尾)优先级更高,Cmd + ←/→可能被忽略
光标卡在行尾出不去?先查这个配置
editor.cursorAtEndOfLine 是个隐形陷阱。一旦设为 true,光标就永远被“焊死”在行尾,按 Home、鼠标点击、甚至方向键都无法让它回到行中——看起来像快捷键失灵,实则是配置锁死了行为。
- 打开设置搜索
cursorAtEndOfLine,确认值为false - 或直接编辑
settings.json,删掉这一行:"editor.cursorAtEndOfLine": true - 改完立即生效,无需重启
真正的“无鼠标”不是堆砌快捷键,而是理解每个键在什么上下文里有效、什么配置会悄悄覆盖它。Home/End 看似简单,但 macOS 键盘映射、Vim 模式、以及那个藏得极深的 cursorAtEndOfLine,才是日常踩坑的主力。











