VSCode 键绑定:命令与命令 ID?

VSCode Keybindings: Commands vs. Command Ids?

据我了解,在 keyboard shortcuts editor 内部时,粗体命令表示命令面板中可用的命令,而浅色命令表示命令 ID。那是准确的吗?如果是这样...

命令 Insert Snippet 可从命令选项板获得。这将打开片段菜单。但是,如果您从键盘快捷键编辑器中搜索此命令,它会显示一个命令 ID,这是 not 相同的命令。 Insert Snippet 命令与 editor.action.showSnippets 命令 id 具有相同的功能。但是,当您搜索此命令 ID 时,它不会在其上方以粗体显示 Insert Snippet 命令。

这是迄今为止我遇到的唯一一条似乎与我认为 bold/light 文本的意思不一致的命令。我错过了什么?

也许在没有 args 的情况下执行 editor.action.insertSnippet 只是调用 editor.action.showSnippets?

显示菜单

{
    "key": "ctrl+shift+alt+r",
    "command": "editor.action.insertSnippet",
}

插入片段

{
    "key": "ctrl+shift+alt+r",
    "command": "editor.action.insertSnippet",
    "args": {
        "snippet": "text"
    }
}

Edit: Although, it's a bit weird that editor.action.insertSnippet is missing from Keybindings GUI when you have 0 user-defined snippets.

事实证明,我对粗体和浅色命令的理解是准确的。

对于 showSnippetsinsertSnippet 的情况有两种解释:

  • editor.action.showSnippets 是为了兼容性而仍然存在的旧命令。
  • 新命令 editor.action.insertSnippet 未显示,因为它接受参数。接受参数的命令,但在 keybindings.json 中没有任何规则,其中该命令是用参数声明的,将不会显示在键盘快捷键 UI 编辑器中。

找到更多信息 here and here

对于那些阅读本文并仍在尝试找出使用哪个命令来显示代码段菜单的人来说,答案是 editor.action.insertSnippet,不带参数执行 editor.action.insertSnippet 将显示片段菜单(与直接插入特定片段相反)。

使用 VSCode 1.52(2020 年 11 月)

,您将不必搜索在命令面板中看到的命令 ID

Keyboard Shortcuts editor

We've added several improvements to the Keyboard Shortcuts editor in this milestone.

You can now configure a keybinding for a command from the Command Palette.


(Theme: GitHub Light)

Plus, You can add several keybindings to a command from the Keyboard Shortcuts editor.


(Theme: GitHub Light)