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