vscode离线快捷键列表需从安装目录的keybindings.json提取按键映射,再结合对应语言包(如zh-cn/package.nls.json)补全中文描述,二者合并生成完整列表。

VSCode 离线快捷键列表在哪找
VSCode 本身不提供单独导出的“快捷键大全 PDF/HTML”文件,但所有快捷键数据都内建在安装目录中,可直接提取。关键路径是 keybindings.json 的源定义 + package.nls.json 的本地化描述,二者结合才能还原出带中文说明的完整列表。
从 keybindings.json 提取原始绑定规则
这个文件只存“按键 → 命令 ID”的映射,不含说明文字,位置取决于系统:
- Windows:
%USERPROFILE%\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node_modules\vscode-keybindings\keybindings.json - macOS:
/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node_modules/vscode-keybindings/keybindings.json - Linux:
/usr/share/code/resources/app/out/vs/workbench/services/extensions/node_modules/vscode-keybindings/keybindings.json
注意:这是编译后路径,不是用户配置的 keybindings.json(后者在 ~/.config/Code/User/ 下,仅含自定义覆盖项)。
怎么补全中文命令名和描述
VSCode 的界面文字(包括快捷键说明)来自语言包里的 package.nls.json,它按命令 ID 关联翻译。你需要同步提取对应语言包中的描述字段:
- 中文语言包路径示例(Windows):
%USERPROFILE%\AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules.asar.unpacked\vscode-nls\i18n\vscode-ui_zh-cn\package.nls.json - 查找 key 如
"workbench.action.terminal.toggleTerminal"对应的 value 就是“切换终端”这类描述 - 若没装中文语言包,先在 VSCode 内安装
Chinese (Simplified) Language Pack for Visual Studio Code插件,再重装或重启以生成对应nls文件
纯靠手动对齐效率低,推荐用小脚本合并(Python 示例):
import json
with open("keybindings.json") as f:
kb = json.load(f)
with open("package.nls.json") as f:
nls = json.load(f)
for item in kb:
cmd = item.get("command")
desc = nls.get(cmd, cmd) # fallback to command ID
print(f"{item['key']:<h3>离线查看时容易漏掉的三类快捷键</h3><p>很多人导出后发现“少了好多”,其实是以下三类默认不进 <code>keybindings.json</code> 源文件:</p>
- 扩展自带的快捷键(如 Prettier、GitLens),需单独查各扩展的
package.json中的contributes.keybindings字段 - 触控板/鼠标手势(如双指滑动切换标签),不在键盘绑定体系内,无对应 command ID
- 上下文敏感快捷键(如编辑器聚焦时
Ctrl+Shift+P是命令面板,调试时变成Ctrl+Shift+D切换调试视图),它们依赖when条件表达式,需解析并模拟上下文才生效
真正能稳定离线使用的“大全”,必须合并核心 + 已安装扩展 + 当前工作区 keybindings.json 三处来源——否则你复制出来的列表,可能连自己常用的 Alt+Z(切换换行)都找不到。











