You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Monaco可用命令/动作及其ID列表?

获取Monaco编辑器可用命令/动作及其ID的实用方法

我完全懂你找Monaco命令ID的痛苦——官方文档确实没把这块讲透,VS Code仓库里找起来也像大海捞针。给你几个亲测有效的方法,能快速拿到你需要的命令ID:

1. 直接通过Monaco API枚举所有命令/动作

如果你已经有一个编辑器实例(比如代码里的editor变量),可以在浏览器控制台或者你的代码中执行这段代码,一次性输出所有动作和对应的ID:

// 获取编辑器实例支持的所有动作
const actions = editor.getSupportedActions();
actions.forEach(action => {
  console.log(`动作名称: ${action.label}, ID: ${action.id}`);
});

// 获取全局注册的所有命令ID
const globalCommands = monaco.commands.getCommands();
globalCommands.forEach(cmdId => {
  console.log(`全局命令ID: ${cmdId}`);
});

执行后,你就能看到像editor.action.formatDocument这类目标ID清晰地列出来。

2. 借助VS Code开发者工具抓取命令ID

因为Monaco是VS Code编辑器的核心引擎,两者的命令ID大部分是通用的,你可以利用VS Code的调试工具来快速查找:

  • 打开VS Code的命令面板(快捷键:Ctrl/Cmd + Shift + P)
  • 执行「Developer: Toggle Developer Tools」打开调试面板
  • 切换到「Console」标签,输入commands.getCommands()并回车,就能看到所有命令ID的完整列表
  • 如果你想找某个特定动作的ID,可以先执行该动作,然后立刻在控制台输入window._lastActionId,就能直接拿到刚才执行动作的对应ID(这是VS Code内部的实用小技巧)

3. 查看Monaco的类型定义文件(TypeScript开发者友好)

如果你用TypeScript开发,直接查看monaco-editor包的类型定义文件(通常在node_modules/monaco-editor/monaco.d.ts),里面会定义大量命令ID的常量,比如:

// 示例:类型定义中的命令常量
namespace monaco.editor {
  export const Commands = {
    FormatDocument: 'editor.action.formatDocument',
    // 更多命令常量...
  };
}

通过这些常量,你能准确对应到实际的命令ID,还能获得类型提示。

内容的提问来源于stack exchange,提问作者shshaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 15:52:40