将键盘快捷方式绑定到菜单项

若要将键盘快捷方式绑定到自定义菜单命令,只需向包的 .vsct 文件添加一个条目。 本主题介绍如何将键盘快捷方式映射到自定义按钮、菜单项或工具栏命令,以及如何在默认编辑器中应用键盘映射或将其限制为自定义编辑器。

若要将键盘快捷方式分配给现有的 Visual Studio 菜单项,请参阅 “标识”和“自定义键盘快捷方式”。

选择组合键

Visual Studio 中已使用许多键盘快捷方式。 不应将相同的快捷方式分配给多个命令,因为重复绑定难以检测,也可能导致不可预知的结果。 因此,最好在分配快捷方式之前验证快捷方式的可用性。

验证键盘快捷方式的可用性

  1. “工具>选项>环境”窗口中,选择“键盘”。

  2. 请确保将 “使用新快捷方式 ”设置为“ 全局”。

  3. “按快捷键 ”框中,键入要使用的键盘快捷方式。

    如果 Visual Studio 中已使用快捷方式,则 当前由 框使用的快捷方式将显示快捷方式当前调用的命令。

  4. 尝试使用不同的键组合,直到找到未映射的键。

    注意

    使用 Alt 的键盘快捷方式可能会打开菜单,而不是直接执行命令。 因此,键入包含 Alt 的快捷方式时,当前框使用的快捷方式可能为空。可以通过关闭“选项”对话框,然后按键来验证快捷方式是否未打开菜单。

    以下过程假定你有一个具有菜单命令的现有 VSPackage。 如果需要执行此操作的帮助,请查看 使用菜单命令创建扩展。

将键盘快捷方式分配给命令

  1. 打开包的 .vsct 文件。

  2. 在不存在时创建空 <KeyBindings> 分区 <Commands>

    警告

    有关密钥绑定的详细信息,请参阅 Keybinding

    在本 <KeyBindings> 部分中,创建一个 <KeyBinding> 条目。

    guid 命令和 id 属性设置为要调用的命令。

    mod1 属性设置为 ControlAltShift

    KeyBindings 部分应如下所示:

    <KeyBindings>
        <KeyBinding guid="<name of command set>" id="<name of command id>"
            editor="guidVSStd97" key1="1" mod1="CONTROL"/>
    </KeyBindings>
    
    

    如果键盘快捷方式需要两个以上的键,请设置 mod2key2 属性。

    在大多数情况下, 不应在没有第二个修饰符的情况下使用 Shift ,因为按它已导致大多数字母数字键键入大写字母或符号。

    虚拟密钥代码允许访问没有与其关联的字符的特殊键,例如函数键和 Backspace 键。 有关详细信息,请参阅 虚拟密钥代码

    若要使命令在 Visual Studio 编辑器中可用,请将 editor 属性设置为 guidVSStd97

    若要使命令仅在自定义编辑器中可用,请将 editor 属性设置为在创建包含自定义编辑器的 VSPackage 时由 Visual Studio 包模板生成的自定义编辑器的名称。 若要查找名称值,请查找<Symbols>其属性以“editorfactory.”结尾的name节点的节<GuidSymbol>。这是自定义编辑器的名称。

示例 1

本示例将键盘快捷方式 Ctrl Alt+C 绑定到名为 cmdidMyCommand > 的包MyPackage中指定的命令。

<CommandTable>
. . .
<Commands>
. . .
</Commands>
<KeyBindings>
  <KeyBinding guid="guidMyPackageCmdSet" id="cmdidMyCommand"
      key1="C" mod1="CONTROL" mod2="ALT" editor="guidVSStd97" />
</KeyBindings>
. . .
</CommandTable>

示例 2

本示例将键盘快捷方式 Ctrl+B 绑定到一个名为项目中的cmdidBoldTestEditor命令。 该命令仅在自定义编辑器中可用,而不适用于其他编辑器。

<KeyBinding guid="guidVSStd97" id="cmdidBold" editor="guidTestEditorEditorFactory" key1="B" mod1="Control" />