配置单快捷键切换Markdown预览与源码时预览获焦失效如何解决?
问题原因
你配置的快捷键规则失效主要有两个核心问题:
- 你写的
textInputFocus && !inputFocus本身存在逻辑冲突:textInputFocus代表文本输入框处于聚焦状态,该状态下inputFocus值固定为true,所以这个组合条件永远无法命中,本身就是无效规则。 - Markdown预览窗口属于Webview类型面板,不是普通的文本编辑器,
editorLangId、editorReadonly、textInputFocus这类仅对文本编辑器生效的上下文键,在预览窗口获焦时根本不会生效,自然匹配不到你写的规则。
正确配置方案
直接用预览面板专属的上下文键activeWebviewPanelId做判断即可:
- 给
markdown.showSource(预览切源码的命令)配置When Expression:
这个条件会在Markdown预览窗口获得焦点时精准命中,无需额外加其他编辑器相关判断。activeWebviewPanelId == 'markdown.preview' - 给
markdown.showPreview(源码切预览的命令)配置When Expression:
这个规则会在你聚焦Markdown源码编辑器时生效,逻辑更简洁也不会出现冲突。editorLangId == 'markdown' && editorFocus
验证方式
修改配置后重载VS Code窗口即可生效:
- 打开任意Markdown文件,按下源码切预览的快捷键,确认能正常调出预览面板
- 点击预览面板让其获得焦点,按下预览切源码的快捷键,确认能正常跳回源码编辑页
内容的提问来源于stack exchange,提问作者irvnriir
相关产品推荐
相关产品推荐

