使用宏删除Visual Studio中的键盘快捷键绑定

时间:2010-02-24 08:25:24

标签: visual-studio envdte

我设置了很多自定义键盘快捷键。为了避免每次安装新的可视工作室时都要设置它们(当前发生了很多情况,VS2010处于测试版/ RC状态)我创建了一个宏,它设置了我所有的自定义命令,如下所示:

DTE.Commands.Item("ReSharper.ReSharper_UnitTest_RunSolution").Bindings = "Global::Ctrl+T, Ctrl+A"

我的主要问题是默认设置Ctrl + T以映射到transpose char命令。所以我想删除宏中的默认值。

我尝试了以下两行,但都抛出异常

DTE.Commands.Item("Edit.CharTranspose").Bindings = ""
DTE.Commands.Item("Edit.CharTranspose").Bindings = Nothing

虽然他们有点工作,因为他们实际上删除了绑定;)但我更喜欢没有抛出异常的解决方案。

这是怎么做到的?

3 个答案:

答案 0 :(得分:3)

我已经解决了同样的问题。我使用宏来为一组对齐宏指定键绑定。

Dim NewBindings() = {"Global::Alt+="}
DTE.Commands.Item("Macros.Dev.AlignUtils.AlignEquals").Bindings = NewBindings
NewBindings(0) = "Global::Alt+Num -"
DTE.Commands.Item("Macros.Dev.AlignUtils.AlignMinus").Bindings = NewBindings
...

要删除键绑定,请使用以下语句:

Dim DelBindings() = {} 
DTE.Commands.Item("Macros.Dev.AlignUtils.AlignPlus").Bindings = DelBindings

在Visual Studio 2005下工作正常。

答案 1 :(得分:2)

我采用了一种更务实的方式(使用你的例子):

DTE.Commands.Item("ReSharper.ReSharper_UnitTest_RunSolution").Bindings = "Global::Ctrl+T"
DTE.Commands.Item("ReSharper.ReSharper_UnitTest_RunSolution").Bindings = "Global::Ctrl+T, Ctrl+A"

第一个作业Ctrl+T从任何其他作业中取消分配,然后在第二个作业中解除绑定。

对我来说就像是一种魅力。

答案 2 :(得分:-2)

您无需使用宏进行更改,只需转到

即可

菜单>工具>选项 - 键盘,然后从下拉列表中选择要更改快捷方式的内容并指定您的快捷方式