Visual Studio에서 문서 간 이동을위한 Ctrl + Tab 동작 변경


286

Visual Studio에서 Ctrl+ TabShift+ Ctrl+ Tab작동 방식을 변경할 수 있습니까? 탭 컨트롤의 항목 사이에서만 전환하기 때문에 팝업 탐색기 창을 비활성화했습니다. 내 문제는 다음 및 이전 문서로 전환하는 내용이 일치하지 않는 것입니다.

내가 본 열린 문서에 탭 컨트롤을 사용하는 다른 모든 프로그램은 Ctrl+ Tab를 사용 하여 왼쪽에서 오른쪽으로 이동하고 Shift+ Ctrl+ Tab를 사용하여 오른쪽에서 왼쪽으로 이동합니다. Visual Studio는 선택된 마지막 탭으로 이동하여이를 중단합니다. 어떤 문서를 만들 것인지 절대 알 수 없으며 두 번 같은 방법이 아닙니다.

매우 반 직관적입니다. 모든 사람이 한 번에 두 개의 문서 만 열도록 권장하는 미묘한 방법입니까?


몇 개의 파일이 열려 있다고 가정 해 봅시다. 나는 하나에서 일하고 있으며 오른쪽의 다음 탭에 무엇이 있는지 확인해야합니다. 지구를 향한 다른 모든 단일 응용 프로그램에서 Ctrl+ Tab는 나를 데려다 줄 것입니다. 그러나 Visual Studio에서는 다른 탭 중 어느 것이 나를 가져갈 지 모릅니다. 문서를 두 개만 열면 이것이 잘 작동합니다. 세 개 이상으로 이동하자마자 Visual Studio에서 어떤 탭으로 전송하기로 결정했는지에 대한 모든 베팅은 종료됩니다.

이것에 대한 문제는 도구에 대해 생각할 필요가없고, 배경으로 희미 해져야하며, 작업에 대해 생각해야한다는 것입니다. 현재 탭 동작으로 인해 작업이 계속 진행되고 도구에주의를 기울여야합니다.


4
"팝업 네비게이터 창을 비활성화했습니다"... 성가신 선택 창 팝업을 어떻게 해제 했습니까? Ctrl + Tab을 누를 때마다 깜박 거리는 것이 너무 귀찮습니다.
demoncodemonkey

31
Ah-도구-> 옵션-> 키보드에서 Window.NextDocumentWindowNav에서 Window.NextDocumentWindow ( "Nav"를 제거)로 Ctrl + Tab을 다시 바꿨습니다. Ctrl.Shift + Tab with Window.PreviousDocumentWindowNav와 동일합니다.
demoncodemonkey

11
Alt-tab과 마찬가지로이 동작이 마음에 들지 않습니까?
Theo Belaire

3
Visual Studio는 "가장 최근에 사용한"(MRU) 동작을 사용하여 탭을 탐색하는 것으로 보입니다. 메모장 ++는이 동작을 활성화 / 비활성화하는 옵션을 제공합니다 (따라서 일부 사람들은 좋아합니다). 그래도 규칙적이고 직관적 인 행동으로 전환하고 싶습니다.
André Caron

4
솔직히 말해서 프로그램이 시각적 탭 순서로 순환하는 것을 좋아하지 않습니다. Visual Studio의 동작에 동의합니다. 모든 ctrl + tab에 대해 마지막으로 사용 된 것으로, 그 이전에 마지막으로 사용 된 것으로 돌아갑니다. 패턴은 매우 오랫동안 (VB6 또는 생각하기 전에)있었습니다. 내 말은, 당신이 선호하는 패턴을 사용하지만, 그것이 어떻게 작동하는지 안다면, 이해하기가 더 쉽다 :)
Josh Robinson

답변:


227

Visual Studio 2015 (이전 버전의 VS뿐만 아니라 VS2013 이하를 사용하는 경우 Productivity Power Tools를 설치해야 함 )에는 Visual Studio에 두 가지 새로운 명령이 있습니다.

Window.NextTabWindow.PreviousTab

Ctrl+ Alt+ PageUp/ Ctrl+ Alt+ PageDown에서 Ctrl+ Tab/ Ctrl+ Shift+ 로 다시 매핑하십시오 Tab.

메뉴 도구 -> 옵션 -> 환경 -> 키보드

참고 : Visual Studio 2010과 같은 이전 버전에서 Window.NextTab 및 Window.PreviousTab의 이름은 Window.NextDocumentWellTabWindow.PreviousDocumentWellTab 입니다.


1
이것은 Visual Studio 2010에 대한 최고의 답변입니다. 이것은 매우 도움이되었습니다. 허용되는 매크로 솔루션이 이보다 열등합니다.
jmq

2
Visual Studio 2012 용 아직 버전이 없음
대령 Panic

4
Visual Studio Express를 사용하면 도움이되지 않습니다.
BornToCode

18
Visual Studio 2012에서는 명령 이름이 약간 변경되었습니다. 이제 Window.NextTabWindow.PreviousTab 입니다.
JP ten Berge

3
@ JP ten Berge-VS 2012에서 이것을 테스트했으며 Razor보기 (.cshtml 파일)에 있으면 Window.PreviousTab 바로 가기 (Ctrl + Alt + PgUp)가 작동하지 않습니다. Ctrl + Alt + PgDown이 여전히 작동하지만 완전히 붙어 있지는 않지만 매우 성가시다. Window.NextDocumentWindow (Ctrl + F6)도 있지만 이상한 순서로 탭을 순환시키는 것처럼 보입니다.
DGreen

70

Visual Studio 2010에는이를 해결하는 방법이 내장되어 있습니다.

기본적으로 Ctrl+ TabCtrl+ Shift+ Tab는에 할당되어 Window.[Previous/Next]..Document있지만

Tools -> Options -> Environment -> Keyboard,

해당 키 지정을 제거하고 다시 지정 Window.[Next/Previous]Tab하여 원하는 동작을 추가하십시오.


5
분명히 누군가가 공감대 뒤에있는 추론을 혼동했습니다. 답변이 질문에 부합하지 않거나 실제로 부정적인 경우에는 그럴만 한 가치가 있습니다 ... 그러나 내 대답은 대답보다는 적지 만 질문에 올바르게 대답합니다. 내 사람들이 "여기,이 스크립트를 실행하십시오"또는 "이 애드온을 설치하십시오!"가 아닌 옵션 메뉴를 실제로 이해하기를 기대하고 있습니까? 이것은 프로그래머를위한 사이트가 아닙니까?
Zoey

1
사람들이 문서 탭간에 전환하려고했을 수도 있습니다. @thepaulpage의 솔루션은 'Window. [Next / Previuos] Tab'을 편집해도 VS2010의 문서 탭에는 영향을 미치지 않았습니다. 명확하고 애드온이없는 접근 방식을 위해 +1!
GnomeDePlume

⁺¹, 나는 누군가 누군가 당신의 대답을 내리는 이유를 생각했습니다. Visual Studio 2010에는«Keyboard»옵션이없는 이상한 버전이있었습니다. 아마도 하나는이 버전을 가지고 옵션을 보았고 주관적인 관점에서 대답이 실제로 잘못 되었기 때문에 대답이 잘못되었다고 결정했습니다.
안녕 천사

1
Window.[Previous|Next]DocumentWindowVS2015 에서이 기능을 설정 에서 바인딩을 제거해야했습니다 . 기본적으로 우선 순위를 갖는 것처럼 보이는 별도의 텍스트 편집기 바인딩이있었습니다.

51

적어도 VS 2012에서 변경 될 수 있습니다 (2010 년에도 작동해야한다고 생각합니다).

1) TOOLS > Options > Environment > Keyboard

(예 도구, VS2012!) 이제 세 가지 단축키를 확인하십시오.

2) Window.NextDocumentWindow-상단의 검색 창에 입력하여 빠르게 도착할 수 있습니다. 이제 이것은 당신의 적입니다 입니다. 마음에 들지 않으면 제거하십시오. 자신의 것을 원한다면 다른 것으로 변경하십시오 (그리고 할당 버튼을 잊지 마십시오) . 끝에있는 바로 가기를 기억하십시오 . 나중에 편리 할 것입니다.

(이것은 마지막 탭을 기억하는 바로 가기임을 의미합니다)

여기에 이미지 설명을 입력하십시오

3) 이제 찾으십시오 Window.NextDocumentWindowNav -이것은 위와 동일하지만 열린 탭의 미리보기를 보여줍니다 (이 팝업으로 다른 창으로 너무 빨리 이동할 수 있습니다). 그래도 도움이되지 않았습니다. 2 단계에서 언급 한 모든 작업을 수행 하십시오 (기억 하는 것을 잊지 마십시오 ).

4) Window.NextTab-당신의 마술 물약. 이렇게하면 탭을 순서대로 순환 할 수 있습니다. CTRL+ 를 원 TAB하십니까? 다시 2 단계에서 기억하십시오 .

5) 이제 바로 가기 키 누르기 텍스트 상자에 커서를 놓고 (현재 선택한 항목에 관계없이 이번에 는 할당 하지 않음 ) 세 개 (또는 두 개 또는 하나) 바로 가기 중 첫 번째를 입력하십시오.

여기에 이미지 설명을 입력하십시오

당신은 볼 현재에서 사용하는 바로 가기 : 나와. 바로 가기에 대한 중복 항목이 없는지 확인하십시오. 그림에는 중복 된 항목이 없습니다. 당신이 (드물게) 가지고 있다면 X라고 말하고 X로 가서 바로 가기를 제거하십시오. 다른 바로 가기에도이 단계를 반복하십시오.

6) 이제 Previous단축키도 1-5 반복하십시오 (바람직하게는을 추가하십시오 Shift).

7) 보너스 : 같은 상자의 상단)에서 선택 VS2005 매핑 방식 (, 이제 당신이 얻을 F2에 대한 이름 변경 회원이 아닌 CTRL+ R+ R, 및 F7대한 코드보기 가 아니라 CTRL+ ALT+ 0.

VS는 기본적으로 올바르게 생각합니다. VS가 내가 마지막으로 사용한 것을 기억하고 OS 자체 (on ALT+ TAB) 와 마찬가지로 전환을 쉽게하는 것이 매우 유용하다는 것을 알았습니다 . Firefox는 다르게 동작하지만 내 브라우저는 기본적으로 동일하게 작동합니다 (Opera).


나는이 행동을 반 카운터 비 직관적 인 것으로 찾지 못했습니다. ;-)
dotNET

이 답변의 상단에있는 의견은 항상 정보가 없으며 (대형 때문에) 불필요하게 적대적이라고 생각했습니다.
thepaulpage

@thepaulpage 내 답변을 업데이트했습니다. 내가 의견을 제시해야하는 이유는 많은 사용자 (OP 포함)가 반 직관적이라는 의견을 제시했기 때문입니다.
nawfal

16

Visual Studio 2012 이상 (2013, 2015, 2017 ...)에서 :

  1. 도구 / 옵션 / 환경 / 키보드 메뉴를 찾습니다.
  2. 'Window.NextTab'명령을 검색하고 단축키를 Ctrl+로 설정하십시오.Tab
  3. 'Window.PreviousTab'명령을 검색하고 단축키를 Ctrl+ Shift+로 설정하십시오.Tab

여기에 이미지 설명을 입력하십시오


4
참고로 기본적으로 Ctrl + Tab 및 Ctrl + Shift + Tab은 'Window.NextDocumentWindowNav'및 'Window.PreviousDocumentWindowNav'명령에 매핑됩니다.
Rory O'Kane

8

블로그 게시물 Visual Studio 탭 Un-stupidifier Macro로 이동하여 매크로 를 사용하십시오. 매크로를 Visual Studio 설치에 적용한 후 자주 사용하는 키보드 단축키를 이들에 바인딩 할 수 있습니다. 또한 매크로 풍선을 표시하지 않는 것에 대한 주석의 레지스트리 수정은 잠시 후에 성가신 것을 나타낼 수 있습니다.


그것은 여전히 ​​일부 조건에서 여전히 깰 수 있지만 이것은 실제로 원하는대로 작동하는 가장 까다로운 것입니다.
Jeff Cuscutis

VS 2010에서는 텍스트 문서간에 변경하도록 Ctrl + Tab 및 Ctrl + Shift + Tab을 구성 할 수 있지만 디자이너 탭이나 BinaryEditor에서는 작동하지 않습니다. 위 블로그 게시물의 매크로는 대부분의 문서 창 유형에서 작동하는 유일한 방법입니다. 또한 자세한 내용 ( goo.gl/K9rz ) 이있는 버그를 Microsoft에 제출 했으며 "다음 Visual Studio 버전"의 문서에 대해 MRU 이외의 전환을 변경 Window.NextTab하고 Window.PreviousTab제공 할 것이라고 말했습니다 .
Greg Bray

7

두 시간 동안 검색 한 후 왼쪽에서 오른쪽으로 이동 하는 CTRL+ TAB를 사용하여 열린 문서를 전환하는 방법 과 SHIFT+ CTRL+TAB 오른쪽에서 왼쪽으로 이동합니다.

간단히 말해이 매크로를 복사하여 붙여 넣어야합니다.

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module TabCtrl

Public Sub TabForward()
    Dim i As Integer
    Dim activateNext As Boolean = False

    For i = 1 To DTE.Windows.Count
        If DTE.Windows().Item(i).Kind = "Document" Then

            If activateNext Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If

            If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
                activateNext = True
            End If
        End If
    Next

    ' Was the last window... go back to the first
    If activateNext Then
        For i = 1 To DTE.Windows.Count
            If DTE.Windows().Item(i).Kind = "Document" Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If
        Next
    End If
done:

End Sub

Public Sub TabBackward()
    Dim i As Integer
    Dim activateNext As Boolean = False

    For i = DTE.Windows.Count To 1 Step -1
        If DTE.Windows().Item(i).Kind = "Document" Then

            If activateNext Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If

            If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
                activateNext = True
            End If
        End If
    Next

    ' Was the first window... go back to the last
    If activateNext Then
        For i = DTE.Windows.Count To 1 Step -1
            If DTE.Windows().Item(i).Kind = "Document" Then
                DTE.Windows().Item(i).Activate()
                GoTo done
            End If
        Next
    End If
done:

End Sub

End Module

매크로는 www.mrspeaker.net/2006/10/12/tab-un-stupidifier/에서 비롯됩니다.

Visual Studio에 매크로를 추가하지 않으면 매크로를 사용하는 방법에 대한 매우 유용한 링크 가 있습니다 .


2
처음으로이 작업을 수행하는 데 여전히 10 초가 걸리고 나중에 사용할 때마다 시스템 트레이 아이콘이 깜박입니까? 그것이 VS2005가했던 일이고, 나는 그것을 받아 들일 수 없었습니다.
Roman Starkov

1
Romkyns : 예, 두렵습니다. 여전히 실행 가능한 솔루션이 아닙니다.
David Foster

1
Romkyns : 그렇습니다. 매크로를 실행할 때마다 매크로가 실행 중임을 나타내는 풍선이 시스템 트레이에 나타납니다. 해당 풍선을 제거하기 위해 Windows 레지스트리를 편집하고 다음 DWORD 값을 추가 할 수 있습니다. "DontShowMacrosBalloon"= 1, 해당 키 : HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 9.0 (Visual Studio 2008의 경우 9.0 사용, 2005의 경우 8.0) . 풍선은 사라지지만 시스템 트레이 아이콘은 계속 나타납니다. 나를 위해이 솔루션은 충분하지만 더 잘 찾지 못했고 원래 ctrl + tab 동작을 싫어합니다.
user410261

6

표시된 탭의 순서가 탭 전환 논리와 다르기 때문에 Visual Studio 탭 순서의 철학은 매우 반 직관적이므로 탭의 순서는 완전히 쓸모가 없습니다 .

더 나은 해결책이 생길 때까지 (환경-> 일반의) 창 레이아웃을 탭 문서에서 여러 문서로 변경하십시오. 동작을 변경하지는 않지만 탭으로 인한 혼동을 줄입니다.

그렇게하면 DocumentWindowNav가 더 유용하다는 것을 알게 될 것입니다!


6

Ctl+ Alt+ PgUp또는 PgDn바로 가기가 나를 위해 상자에서 다음 / 이전 탭을 토글하는 데 효과적이었습니다 ...


3
비논리적 인 점은 다음과 같습니다. 탭 막대에 n 개의 탭에 대한 가로 공간 만있는 경우 해당 바로 가기를 사용하면 현재 보이지 않는 탭에 대해 탭 순환이 수행되지 않습니다!
sergiol

5

저는 Jeff와 100 % 동의합니다.

나는 몇 년 동안 볼랜드 C ++ 빌더에서 일했다 및 중 하나는 내가 가장 그리워 '올바른'문서 탭 순서가 함께 제공 Ctrl- Tab. Jeff가 말했듯이 " 현재 탭 동작으로 인해 작업에서 벗어날 수 있으며 도구에주의를 기울여야합니다. "는 정확히 이것에 대해 어떻게 느끼는지에 따라 매우 놀랍습니다. 많은 사람들이 이것에 대해 불평합니다.

나는 생각한다 Ctrl-F6 - NextDocumentWindowNav - 문서의 마지막 활성화 된 시간을 기준으로 탐색합니다 문서를. 이 동작은 MDI 응용 프로그램이 예전의 동작 방식과 매우 유사합니다.

이 점을 고려 하여 현재 열려있는 문서가 2 개 이상인 경우에도 Ctrl+ F6를 사용 하여 2 개의 문서 (c ++ 프로젝트에서 작업 할 때 .cpp와 .h 파일 간을 전환하는 데 매우 편리합니다)를 전환합니다. 예를 들어 10 개의 문서 (Tab1, Tab2, Tab3, ...., Tab10)가 열려 있으면 Tab1을 클릭 한 다음 Tab2를 클릭합니다. 내가 할 때 Ctrl+ F6및 해제 키를, 나는 TAB1로 이동합니다. Ctrl+를 F6다시 누르면 Tab2로 돌아갑니다.


5

VSS가 Next (Previous) DocumentWindow라고 부르는 것을 원한다고 생각합니다. 기본적으로 Ctrl(-Shift)-F6VSS 8에 켜져 Ctrl(-Shift)-Tab있습니다 Next(Previous)DocumentWindowNav. 도구 / 옵션 / 키보드를 통해 키 할당을 변경할 수 있습니다.


3
Ctrl- (Shift-) F6은 왼쪽 또는 오른쪽 탭으로 이동하지 않습니다. Ctrl-Tab과 같은 순서이지만 성가신 창은 없습니다.
shoosh

1
올바른 ... Visual Studio 2010에는 MRU가 아닌 문서 변경을 수행하는 Window.NextTab 및 Window.PreviousTab이 있지만 모든 문서 유형에서 작동하지는 않습니다. connect.microsoft.com/VisualStudio/feedback/details/571750/…
그렉 브레이

4

레지스트리 분기에서 : HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 9.0 값이 1 인 "UseMRUDocOrdering"이라는 DWORD를 추가하십시오. 가장 최근에 사용한 문서가 왼쪽에 배치됩니다. 완벽하지는 않지만 기본 행동보다 낫습니다.


0

@thepaulpage의 답변 아래 @ J-Bob의 의견 에 따라 VS 2017 +로 업데이트되었습니다 (강조 추가).

명령이 다시 변경된 것 같습니다. 이제 2017이며 키보드 단축키는 다음 편집기 열기이전 편집기 열기 라고 합니다. 이를 위해 확장이 필요하지 않습니다.

왼쪽 하단의 기어 기호 또는 [Ctrl]+,명령을 통해 액세스 할 수있는 설정에서 옵션을 찾을 수 있습니다 .


-5

Visual Studio를 사용하지 않지만 ( 예, 실제로는 사용하지 않습니다 ) AutoHotkey 는 전 세계 또는 특정 응용 프로그램에서 핫키를 다시 매핑 할 수 있습니다.

#IfWinActive Microsoft Excel (application specific remapping)

; Printing area in Excel (@ Ctrl+Alt+A)
^!a::
Send !ade
return

#IfWinActive


$f4::
; Closes the active window (make double tapping F4 works like ALT+F4)
if f4_cnt > 0 
{
    f4_cnt += 1
    return
}

f4_cnt = 1
SetTimer, f4_Handler, 250
return

f4_Handler:
SetTimer, f4_Handler, off

if (f4_cnt >= 2)    ; Pressed more than two times
{   
    SendInput !{f4}
} else {
    ; Resend f4 to the application
    Send {f4}
}

f4_cnt = 0
return

이것들은 나의 메인 AutoHotKey 스크립트의 두 가지 리 맵핑입니다. 이 유형의 작업에 훌륭한 도구라고 생각합니다.


3
죄송하지만 문제는 옳은 일을하는 열쇠 가 없기 때문에 도움이되지 않는다는 것입니다.
로마 스타 코프
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.