若要将键盘快捷方式绑定到自定义菜单命令,只需向包的 .vsct 文件添加一个条目。 本主题介绍如何将键盘快捷方式映射到自定义按钮、菜单项或工具栏命令,以及如何在默认编辑器中应用键盘映射或将其限制为自定义编辑器。
若要将键盘快捷方式分配给现有的 Visual Studio 菜单项,请参阅 “标识”和“自定义键盘快捷方式”。
选择组合键
Visual Studio 中已使用许多键盘快捷方式。 不应将相同的快捷方式分配给多个命令,因为重复绑定难以检测,也可能导致不可预知的结果。 因此,最好在分配快捷方式之前验证快捷方式的可用性。
验证键盘快捷方式的可用性
- 在 “工具>选项>环境 ”窗口中,选择 “键盘”。 
- 请确保将“使用新快捷方式的范围”设置为“全局”。 
- 在 “按快捷键 ”框中,键入要使用的键盘快捷方式。 - 如果该快捷方式已在 Visual Studio 中使用,则 当前由框使用的快捷方式 将显示该快捷方式目前调用的命令。 
- 尝试使用不同的键组合,直到找到未映射的键。 - 注释 - 使用 Alt 的键盘快捷方式可能会打开菜单,而不是直接执行命令。 因此,键入包含 Alt 的快捷方式时,当前框使用的快捷方式可能为空。可以通过关闭“选项”对话框,然后按键来验证快捷方式是否未打开菜单。 - 以下过程假设你现在有一个已有菜单命令的 VSPackage。 如果需要执行此作的帮助,请查看 使用菜单命令创建扩展。 
将键盘快捷方式分配给命令
- 打开包的 .vsct 文件。 
- 如果不存在,请在 - <Commands>后创建一个空的- <KeyBindings>分区。- 警告 - 有关密钥绑定的详细信息,请参阅 Keybinding。 - 在本 - <KeyBindings>部分中,创建一个- <KeyBinding>条目。- 将 - guid和- id属性设置为要调用的命令的属性。- 将 - mod1属性设置为 Control、 Alt 或 Shift。- KeyBindings 部分应如下所示: - <KeyBindings> <KeyBinding guid="<name of command set>" id="<name of command id>" editor="guidVSStd97" key1="1" mod1="CONTROL"/> </KeyBindings>- 如果键盘快捷方式需要两个以上的键,请设置 - mod2和- key2属性。- 在大多数情况下,不应在没有第二个修饰符的情况下使用 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" />