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

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

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

选择组合键

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

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

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

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

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

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

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

    注释

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

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

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

  1. 打开包的 .vsct 文件。

  2. 如果不存在,请在 <Commands> 后创建一个空的 <KeyBindings> 分区。

    警告

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

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

    guidid 属性设置为要调用的命令的属性。

    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>部分查找其name属性以“editorfactory”结尾的<GuidSymbol>节点。 这是自定义编辑器的名称。

示例 1

本示例将键盘快捷键组合 Ctrl+Alt+C 绑定到一个命令,该命令位于一个名为 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="guidTestEditorEditorFactory" id="cmdidBold" editor="guidVSStd97" key1="B" mod1="Control" />