VSCode 默认未绑定 Ctrl+PageUp/Ctrl+PageDown,需手动添加 workbench.action.previousEditor 和 workbench.action.nextEditor 命令;Mac 用户建议用 Cmd+Shift+[ / ];多编辑器组下不跨组切换。

Ctrl+PageUp / Ctrl+PageDown 默认不工作,不是你配错了,是 VSCode 压根没绑定——必须手动加 workbench.action.previousEditor 和 workbench.action.nextEditor 才能按物理位置顺序切标签页。
为什么 Ctrl+PageUp 切不了上一个标签页?
VSCode 默认只认 Ctrl+Tab(按访问历史)和 Ctrl+Shift+Tab(反向历史),不响应 Ctrl+PageUp 或 Ctrl+PageDown。这不是快捷键冲突,也不是扩展干扰,就是命令没注册。Mac 用户尤其要注意:Cmd+PageUp 在 macOS 上基本无效,系统会先截获 Fn+↑ 用于调亮度。
-
workbench.action.openPreviousEditor已废弃,VSCode 1.80+ 会静默忽略,别用 - 真正生效的是
workbench.action.previousEditor(左邻)和workbench.action.nextEditor(右邻) - 这两个命令只在当前编辑器组内生效,不会跨左右分屏跳转
怎么在 keybindings.json 里正确添加
打开命令面板(Ctrl+Shift+P),执行 Preferences: Open Keyboard Shortcuts (JSON),在数组里插入两条规则:
[<br> { "key": "ctrl+pageup", "command": "workbench.action.previousEditor" },<br> { "key": "ctrl+pagedown", "command": "workbench.action.nextEditor" }<br>]
-
key字符串必须小写,修饰键用英文名(ctrl、shift、alt),普通键用标准名(pageup、pagedown) - 不要加
when条件——这两个命令本身只在编辑器组有标签时才可触发,加了反而可能限制生效 - Windows/Linux 可直接用;Mac 用户建议改用
cmd+shift+[/cmd+shift+],更稳定
快捷键冲突时怎么快速定位源头
按下你想查的组合键后,在开发者工具 Console 里搜 KeybindingService#dispatch,就能看到它实际匹配到了哪个命令、来自哪里。
- 更省事的方法:打开快捷键图形界面(
Ctrl+K Ctrl+S),在右上角搜索框点键盘录制按钮,然后按Ctrl+PageUp,结果列表会显示所有命中项及其“源”列(Default、User、Extension) - 如果某扩展占用了该组合,优先级低于用户配置,但若它绑定了
when更宽泛的条件(比如always),仍可能拦截 - 删掉冲突项或显式覆盖(在用户 JSON 里加同
key的新条目)即可
真正容易被忽略的是:多编辑器组场景下,previousEditor 和 nextEditor 不会帮你“绕到隔壁组最右边/最左边的标签”,它只管当前组。如果你习惯分屏开发又想全局循环切换,得另配插件或接受这个边界。


















