离线文档快捷键需先安装对应扩展,再通过键盘录制模式获取准确command ID,绑定时必须添加when条件(如editorTextFocus && resourceExtname == '.ts'),并避开系统热键和插件冲突。

离线文档没快捷键?先确认它是否已安装并启用
VSCode 本身不自带离线文档,所谓“离线文档”通常指 ms-vscode.vscode-typescript-next、docs-viewer 或语言扩展(如 rust-lang.rust)附带的本地 API 参考,或通过 Extension Pack for Web Development 等插件集成的 MDN/React/Vue 离线手册。如果搜索不到 Open Documentation 类命令,大概率是文档插件根本没装,或装了但未激活。
验证方式:按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入 Documentation: Open 或 Docs: Show,看是否有匹配项。没有就别折腾快捷键——先去 Extensions 商店搜 “offline docs” 或对应语言名 + “docs”,装一个真正提供本地文档浏览功能的扩展。
查不到 command 名?用图形界面反向定位
很多文档插件不把命令注册进全局命令列表,而是只在右键菜单或命令面板里隐式暴露。这时不能靠“猜 command 名”,得用快捷键界面反向抓取:
- 按
Ctrl+K Ctrl+S打开快捷键设置(注意是两段式:先按Ctrl+K松开,再按Ctrl+S) - 在顶部搜索框右侧点那个小键盘图标(⌨️),进入“键盘录制模式”
- 右键文档插件提供的某个菜单项(比如 “Open React Docs”),选中它——此时 VSCode 会自动在搜索框里填入该操作绑定的完整
command名 - 找到后,右键该条目 → “复制命令 ID”,粘贴下来备用
常见真实命令示例:docs-viewer.openDocs、extension.mdnWebDocs.open、typescript.openDocumentation。拼错一个字母,快捷键就完全失效。
绑定快捷键时必须加 when 条件,否则可能不触发
离线文档类命令往往只在特定上下文生效,比如光标在 JS 文件里才显示 TypeScript 文档入口,或仅当编辑器有焦点时响应。若直接在 keybindings.json 里写:
[{"key":"ctrl+alt+d","command":"docs-viewer.openDocs"}]
——它大概率按了没反应。正确做法是补上 when,例如:
[{"key":"ctrl+alt+d","command":"docs-viewer.openDocs","when":"editorTextFocus && resourceExtname == '.js' || resourceExtname == '.ts'"}]
关键点:
-
editorTextFocus是基础条件,没它,光标在终端/设置页时按键无效 -
resourceExtname == '.ts'这类过滤能避免在 Markdown 文件里误触 - 多个条件用
||(或)、&&(且)连接,不要用中文符号或空格 - 值必须用单引号包裹,双引号会导致 JSON 解析失败
快捷键被系统或插件拦截?优先排查这三处
按下组合键后毫无反应,不是配置错了,就是信号根本没传到 VSCode:
-
系统级热键占用:比如
Ctrl+Alt+D在 Windows 是“显示桌面”,Linux 下常被桌面环境捕获;macOS 的Cmd+Option+D可能触发 Dock 隐藏。换用Ctrl+Shift+Alt+D这类三键以上组合更安全 -
插件覆盖默认行为:Vim 插件会劫持几乎所有组合键;Prettier 可能占用了
Shift+Alt+F。在快捷键界面搜你的目标键,看是否标黄感叹号,点开看“来源”列 -
when 条件不满足却没提示:VSCode 不会报错,只会静默忽略。打开开发者工具(
Help → Toggle Developer Tools),切到 Console 标签,按快捷键,看有没有command 'xxx' not found或when clause failed日志
真正稳定的离线文档快捷键,从来不是靠堆砌键位,而是靠精准的 when 表达式 + 插件行为隔离 + 系统热键避让。少一个环节,就等于白配。


















