如何在VSCode扩展中通过vscode模块读取快捷键绑定?
读取VSCode当前所有快捷键的官方方案
完全可以通过vscode模块的官方API实现需求,没必要直接读取storage.json——这个文件的路径是平台相关的,且内部格式可能随VSCode版本变动,直接读取存在兼容性风险。
核心实现方式
使用vscode.commands.getKeybindings() API,调用后会返回一个包含所有生效快捷键的Keybinding对象数组,每个对象包含快捷键对应的命令、触发键组合等关键信息。
示例代码
import * as vscode from 'vscode'; // 获取当前所有生效的快捷键 const allKeybindings = vscode.commands.getKeybindings(); // 遍历处理快捷键信息 allKeybindings.forEach(keybinding => { console.log(`关联命令: ${keybinding.command}`); console.log(`触发键组合: ${keybinding.keybinding}`); // 在此添加你的业务逻辑 });
额外说明
- 该API返回的是最终生效的快捷键集合,包含VSCode默认配置和用户自定义的覆盖项
- 若需筛选特定命令的快捷键,可通过数组过滤实现,比如:
const targetCommand = 'workbench.action.files.save'; const saveKeybindings = allKeybindings.filter(kb => kb.command === targetCommand); - 官方API由VSCode团队维护,兼容性和稳定性远高于直接读取本地配置文件
内容的提问来源于stack exchange,提问作者Eren
相关产品推荐
相关产品推荐

