若要将键盘快捷方式绑定到自定义菜单命令,只需向包的 .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 绑定到一个名为项目中的cmdidBold
TestEditor
命令。 该命令仅在自定义编辑器中可用,而不适用于其他编辑器。
<KeyBinding guid="guidTestEditorEditorFactory" id="cmdidBold" editor="guidVSStd97" key1="B" mod1="Control" />