VSCode如何一键聚焦首个编辑器组首个编辑器且不修改最近使用记录?
解决VS Code快速切换至首个编辑器组并返回原编辑器的问题
问题背景
你需要用VS Code原生命令实现两个快捷键功能:
- 快捷键1:一键聚焦首个编辑器组的首个编辑器
- 快捷键2:快速切回之前操作的编辑器(可能在其他组)
你试过的方案:
- 用
runCommands组合workbench.action.focusFirstEditorGroup和workbench.action.firstEditorInGroup绑定快捷键1 - 用
workbench.action.openPreviousRecentlyUsedEditor绑定快捷键2
但遇到了问题:多编辑器组场景下,按快捷键2会跳到首个组的中间编辑器,而不是你之前操作的那个。原因很明确——聚焦首个组的命令会修改全局最近使用编辑器的记录,把目标编辑器顶到列表最前面,覆盖了原编辑器的位置,导致返回命令找不到正确的目标。
解决方案
把快捷键2的绑定命令换成workbench.action.focusLastEditorGroup即可,完全用原生命令实现,无需扩展。
具体快捷键配置(添加到settings.json)
[ // 快捷键1:聚焦首个编辑器组的首个编辑器(可自定义快捷键) { "key": "ctrl+shift+1", "command": "runCommands", "args": { "commands": [ "workbench.action.focusFirstEditorGroup", "workbench.action.firstEditorInGroup" ] }, "when": "editorFocus" }, // 快捷键2:切回上一次激活的编辑器组(自动恢复组内原活动编辑器) { "key": "ctrl+shift+backspace", "command": "workbench.action.focusLastEditorGroup", "when": "editorFocus" } ]
为什么这个方案有效?
VS Code的每个编辑器组都会独立保存自己的活动编辑器状态——当你从组A切换到组B操作时,组A的活动编辑器还是你离开时的那个。workbench.action.focusLastEditorGroup命令会直接跳回你上一次激活的编辑器组,该组的活动编辑器就是你之前操作的目标,完全绕开了全局最近使用记录被修改的问题。
内容的提问来源于stack exchange,提问作者ghis
相关产品推荐
相关产品推荐

