F10是VSCode调试中“单步执行(Step Over)”的默认快捷键,仅在F5启动调试后生效,执行当前行且不进入函数内部;Alt+→则是导航历史前进,不运行代码。

F10 是你在 VSCode 中“单步执行”(Step Over)的默认快捷键,也是最常该用、也最容易误用的一个。 它不进函数、不跳过逻辑、不终止调试——但它只在你已按 F5 启动调试会话后才真正生效。没进调试状态时按 F10,它什么都不会做。
为什么 F10 不起作用?常见卡点
很多人按了 F10 没反应,不是快捷键坏了,而是根本没处在调试上下文中:
- 还没按
F5启动调试:F10 只是调试控制指令,不是编辑器导航键 - 断点没生效(比如代码没被加载、源码映射失败、或用了未编译的 TypeScript/JSX 文件)
- 调试配置缺失或错误:
launch.json里没配对的program或type,导致调试器启动后立刻退出 - 当前焦点不在编辑器主区域(比如光标在终端、输出面板、或设置页),VSCode 不响应调试快捷键
F10 和 F11 的核心区别在哪
两者都叫“单步”,但行为完全不同,选错直接绕晕逻辑:
-
F10:执行当前行,遇到函数调用就“跳过”——函数体内部不进入,直接停在调用语句的下一行 -
F11:执行当前行,遇到函数调用就“钻进去”——跳转到函数定义处,从第一行开始继续单步 - 举个例子:
const res = fetchData();这一行:- 按
F10→ 等fetchData()返回后,停在console.log(res); - 按
F11→ 立刻跳进fetchData函数体内部,停在它的第一行
- 按
Alt + → 不是“下一步执行”,别混用
这是搜索量极高、但理解偏差最大的一个点:很多用户搜“VSCode 下一步快捷键”,结果按 Alt + → 发现程序没动——因为它根本不是调试命令:
-
Alt + →(Windows/Linux)或Cmd + Shift + -(macOS)是编辑器“前进到上一导航位置”,类似浏览器的“前进”按钮 - 它只跳转光标(比如从
handleClick的调用处跳回它的定义处),完全不运行任何代码 - 如果你刚用
F12跳到函数定义,想回来,Alt + ←才是后退;Alt + →是再往前翻——但它和“执行下一行”毫无关系 - 系统级快捷键冲突常见:Ubuntu GNOME 默认把
Ctrl + Alt + -绑定为缩放,会吞掉你的Alt + ←,必须去 VSCode 设置里搜navigateBack重绑定
真正要让程序“走一步”,只看三件事:是否在调试中、是否停在有效断点、是否用了 F10 或 F11。其余所有带箭头的组合键,都是光标位移,不是代码执行。


















