【问题标题】:Remove a keyboard shortcut binding in Visual Studio using Macros使用宏在 Visual Studio 中删除键盘快捷键绑定
【发布时间】:2010-02-24 08:25:24
【问题描述】:

我设置了很多自定义键盘快捷键。为了避免每次安装新的 Visual Studio 时都必须设置它们(现在发生了很多,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

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

这是怎么做到的?

【问题讨论】:

    标签: visual-studio envdte


    【解决方案1】:

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

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

    【讨论】:

      【解决方案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 未从任何其他函数赋值,然后与第二个赋值解除绑定。

      对我来说就像一个魅力。

      【讨论】:

      • 与原始解决方案相比,这确实有一个有趣的好处 - 您实际上不必知道密钥最初绑定到什么。
      【解决方案3】:

      你不需要用宏来改变它,直接去

      Menu>Tools>Options -- 键盘,然后从下拉列表中选择您想要更改快捷方式的内容并指定您想要的快捷方式

      【讨论】:

      • 我读了它并且完全理解你想要做什么。但是当我想做像你这样的事情时,我从来没有找到解决方案。 注意 VS 将 newver 快捷方式替换为以前的快捷方式。因此,如果您正在创建一个新的捷径,它将覆盖前一个捷径,而前一个捷径将采用新的捷径。而且您找不到一种方法来获取有关为旧密钥生成的新密钥的信息。如果您想随时了解旧的,您可以按照我提到的方式更改旧的。
      • 好吧,如果你读了这个问题,你肯定没看懂。我的全部观点是,当所有其他选项都由宏设置时,我想避免进入选项菜单。
      • 好的,那么,-1 表示不理解答案应该至少与问题有些相关。 wtf.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 2020-09-14
      相关资源
      最近更新 更多