VSCode原生不支持一键导出快捷键为Markdown,仅能通过UI导出纯JSON格式的keybindings.json文件;需借助外部脚本(如Python)将其转换为含快捷键、命令、生效条件的Markdown表格,并注意when字段需用反引号包裹、跨平台键名需区分标注。

导出快捷键映射为 Markdown 的真实路径
VSCode 原生不支持一键导出快捷键为 Markdown,keybindings.json 是纯 JSON 格式,没有内置转换逻辑。想生成可读的 Markdown 表格,必须靠外部处理或手动整理。
常见错误是误以为“导出键绑定”(右上角三点菜单 → “导出键绑定”)能输出 Markdown——它只生成一个含自定义绑定的 JSON 文件,不含说明、分类或表格结构。
- 安全做法:用
code --list-extensions类比思路,但快捷键没对应 CLI 命令,得走间接路线 - 推荐方案:先导出 JSON,再用脚本转 Markdown。例如 Python 一行命令:
python -c "import json,sys;[print(f'|{e['key'] or '-'}|{e['command'] or '-'}|{e.get('when','') or '-'}|') for e in json.load(sys.stdin)]" < keybindings.json | sed '1i|快捷键|命令|生效条件|' | sed '2i|---|---|---|' > keybindings.md - 注意:
when字段值常含空格和布尔表达式(如editorTextFocus && !suggestWidgetVisible),Markdown 表格中需用反引号包裹避免解析异常
备份快捷键配置的最小可行方式
真正可靠的备份,不是截图或手抄,而是保留可复用、可验证的配置文件。关键在于区分「默认绑定」和「你改过的部分」。
VSCode 的 keybindings.json 只应存放你显式修改/新增的条目;默认绑定从不写入该文件。所以备份只需保存这个文件本身——它天然就是增量备份。
离线Markdown转PDF转换器,基于Pandoc与WeasyPrint,支持完整Unicode及本地表情缓存,可将Markdown转为专业级PDF...
- 位置确认(别找错):
Windows/Linux:%APPDATA%\Code\User\keybindings.json或~/.config/Code/User/keybindings.json
macOS:~/Library/Application Support/Code/User/keybindings.json - 不要直接编辑后复制粘贴到新机器:跨平台时
cmd和ctrl必须人工替换,否则 macOS 导出的cmd+K cmd+S在 Windows 上完全无效 - 验证是否生效:在目标机器上打开
Ctrl+K Ctrl+S,右上角点 {} 图标看 JSON 是否被正确加载;若界面无反应或快捷键失灵,大概率是 JSON 语法错误(缺逗号、引号不闭合)
为什么不能用命令面板搜索“export keybindings”
因为 VSCode 没提供这个命令。你在 Ctrl+P 里搜 export 或 keybinding,只会看到“Preferences: Open Keyboard Shortcuts (JSON)”这类入口,没有“Export as Markdown”或“Backup to ZIP”选项。
这是设计使然:快捷键系统定位是运行时配置,不是文档产出工具。所有导出动作都必须经由 UI 界面的三点菜单触发,且仅支持 JSON 格式。
- 典型误操作:装了某些“Keymap Exporter”第三方插件,结果发现它们要么只导出默认绑定(不含你的修改),要么导出格式混乱、
when条件丢失 - 更隐蔽的问题:有些插件会把
keybindings.json里的注释删掉,而你加的备注(比如// fix vim conflict)恰恰是后续排障的关键线索 - 替代思路:把
keybindings.json加进 Git 仓库,每次修改都提交 + 写明变更原因,比任何导出都可靠
跨团队共享快捷键表时最容易忽略的三件事
当你要把快捷键 Markdown 表发给同事或写进 Wiki,光有表格远远不够。实际协作中,90% 的困惑来自上下文缺失。
-
when条件不是装饰:同一组合键在不同场景下行为可能完全不同。比如ctrl+shift+p在终端里无效,在只读文件里也不触发,这些必须在表格旁加文字说明 - 扩展依赖必须标注:如果某条快捷键来自
markdown-all-in-one,而对方没装这个扩展,那这行就只是噪音。建议在 Markdown 表格加一列“来源”,填扩展 ID(如yzane.markdown-pdf) - 平台差异要显性化:不要写“
ctrl+k ctrl+s”,而要写成“ctrl+k ctrl+s(Windows/Linux) /cmd+k cmd+s(macOS)”,避免新人在 Mac 上死按 Ctrl 键
真正的难点不在导出动作本身,而在让别人拿到这份 Markdown 后,能立刻理解哪些快捷键可开箱即用、哪些需要前置条件、哪些只是你个人习惯的残留。

















