views:

154

answers:

2

Hi.

I have a lot of custom keyboard shortcuts set up. To avoid having to set them up every time I install a new visual studio (happens quite a lot currectly, with VS2010 being in beta/RC) I have created a macro, that sets up all my custom commands, like this:

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

My main problem is that Ctrl+T is set up to map to the transpose char command by default. So I want to remove that default value in my macro.

I have tried the following two lines, but both throw an exception

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

Although they kind of work, because they actually remove the binding ;) But I would prefer the solution that doesn't throw an exception.

How is that done?

A: 

You do not need to change it with macro, Just go to

Menu>Tools>Options -- Keyboard and then select what you want to change the shortcut from the dropdown and assignyour desiered short cut

Nasser Hadjloo
-1 for not reading the question
Sky Sanders
I read it and completely underestand what you want to do. but I never found a solutionfor thatWhen I wanted to do someting like you. **note** that VS replace newver shortcut with previous ones . so if you are creating a new short cut it will override the previous one and the previous one take a new short cut. and you can not find a way to getinformation about new keys whichgenerated for old one. you just can change the old one with the wayI mentioned if you want to stay informed about old ones.
Nasser Hadjloo
Well, if you read the question, you certainly did not understand it. My entire point is that i want to avoid going to the options menu, when every other option is set by a macro.
Pete
ok, then, -1 for not understanding that an answer should be at least somewhat relevant to the question. wtf.
Sky Sanders
+1  A: 

I have coped with the same issue. I use a macro to assign key bindings for a set of align macros.

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
...

And to remove key bindings i use the following statements :

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

It works fine under Visual Studio 2005.

Arno
Just what I was looking for -- thanks!
pettys