4

我设置了很多自定义键盘快捷键。为了避免每次我安装新的视觉工作室时都必须设置它们(现在发生了很多,VS2010 处于 beta/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

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

这是怎么做的?

4

3 回答 3

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 下运行良好。

于 2010-04-20T06:40:05.187 回答
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从任何其他函数未赋值,然后与第二个赋值解除绑定。

对我来说就像一个魅力。

于 2013-11-11T08:58:15.540 回答
-2

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

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

于 2010-02-24T08:45:34.833 回答