2010-02-24 3 views
4

많은 사용자 정의 키보드 단축키를 설정했습니다. VS2010이 베타/RC에 포함 된 상태에서 새로운 비주얼 스튜디오를 설치할 때마다 이러한 설정을하지 않으려면 다음과 같이 모든 사용자 지정 명령을 설정하는 매크로를 만들었습니다.매크로를 사용하여 Visual Studio에서 키보드 바로 가기 바인딩 제거

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

나는 같은 문제에 대처했다. 매크로를 사용하여 일련의 정렬 매크로에 키 바인딩을 할당합니다.

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

그리고 난 다음 문을 사용하여 키 바인딩을 제거 할 수는 : 나는 (당신의 예제를 사용하여) 좀 더 실용적인 방법을 따라 2005 년

+0

내가 뭘 찾고 있었는지 - 고마워! – pettys

-2

- 키보드 및 다음의 메뉴에서 바로 가기를 변경하려면 무엇을 선택하고 assignyour 짧은 컷을 desiered

+1

-1 질문을 읽지 않으신 분 –

+0

나는 그것을 읽고 완전히 underestand 무엇을하고 싶습니다. 하지만 나는 해결책을 찾지 못했어. 내가 너와 같은 일을하고 싶었을 때. ** note ** VS가 newver 바로 가기를 이전 것으로 바꿉니다. 따라서 새로운 단축키를 만들면 이전 단축키를 덮어 쓰고 이전 단축키는 새로운 단축키로 사용합니다. 당신은 오래된 키를 위해 생성 된 새로운 키에 대한 정보를 얻을 수있는 방법을 찾을 수 없습니다. 당신은 옛날 것들에 대해 알고 싶다면 내가 언급 한 방법으로 옛것을 바꿀 수 있습니다. –

+2

글쎄, 당신이 질문을 읽으면, 당신은 확실히 그것을 이해하지 못했다. 내 모든 요점은 옵션 메뉴로 이동하지 않으려는 것입니다, 다른 모든 옵션은 매크로에 의해 설정됩니다. – Pete

2

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

는 비주얼 스튜디오에서 잘 작동 :

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은 할당되지 않았습니다. 다른 함수에서 파생시킨 다음 두 번째 할당으로 언 바운드됩니다.

나를위한 매력처럼 작동합니다.

+0

이것은 원래의 솔루션에 비해 흥미로운 이점을 가지고 있습니다. 실제로 키가 원래 바인딩 된 대상을 알 필요는 없습니다. – Pete