단일 Visual Studio 세션에서 파일의 두 인스턴스 열기


555

xyz.cpp 파일이 있습니다 . Visual Studio에서이 파일의 두 인스턴스를 열고 싶습니다 (BTW, Visual Studio 2005를 사용하고 있습니다). 왜 그렇게하고 싶습니까? 동일한 파일의 두 섹션을 나란히 비교하고 싶습니다. 다음과 같은 해결 방법을 알고 있습니다.

  1. 파일을 복사하십시오. 그러나 문제는 우아하지 않다는 것입니다.이 문제가 발생할 때마다 사본을 만들고 싶지 않습니다.

  2. 창을 둘로 나눌 수 있습니다. 수평으로 만 분할 할 수 있다는 분할 문제. 수평 분할의 결과는 화면의 오른쪽 절반이 공백입니다.

세로로 분할하거나 동일한 파일의 두 인스턴스를 열 수 있으면 비교할 수있는 코드 줄 수가 늘어납니다.


12
단순히 파일의 일부만 비교하려면 Window | 분할 파일을 중간에서 가로로 분할합니다.
vexe

@vexe 완벽합니다. 정확히 내가 필요한 것. 동일한 파일을 편집하여 창을 분할합니다.
Vincent P

3
최고 투표 응답을 수락하지 않은 이유는 무엇입니까?
cp.engr

1
@ cp.engr, 그의 프로필에서 : "최종 12 월 6 '09 at 12:41". 높은 응답 사용자가 답변을 수락 된 것으로 표시 할 수 없다는 것은 부끄러운 일입니다.
닥터 존스

답변:


904

방법은 다음과 같습니다.

  1. 두 개의 사본을 원하는 탭을 선택하십시오.
  2. 메뉴에서 메뉴 새 창 을 선택하십시오 .
  3. 새 탭을 마우스 오른쪽 버튼으로 클릭하고 새 세로 탭 그룹을 선택하십시오.

경우 새 창은 * 표시 창 메뉴 노트에 나열되지 않은 명령도에 추가 비주얼 스튜디오 2017의로, 존재를한다는 것을 메뉴 사용 메뉴 도구사용자 정의명령 . 이 시점에서 새 창 명령 을 넣을 위치를 결정 하고 명령 추가를 선택 하십시오 .

"2018 년 7 월 30 일"에 업데이트 됨

Visual Studio Code 버전 1.25.1 이상에서

방법 1

측면 패널 (탐색기)에서 파일을 마우스 왼쪽 버튼으로 클릭하고 Ctrl+를 누를 수 Enter있습니다.

방법 2

Visual Studio Code 측면 패널 (탐색기)에서 파일을 마우스 오른쪽 단추로 클릭 하고 측면에 열려 있는 첫 번째 옵션을 선택하십시오 .


50
두 번째 모니터처럼 사용 가능한 화면 공간이있는 경우 Visual Studio에서 새 탭을 끌어서 두 번째 모니터에서 볼 수도 있습니다.
Artur Carvalho

4
특정 파일 형식에 대해서만이 작업을 수행 할 수 있습니다. 예를 들어 동일한 .xaml 파일에서 두 개의 창을 열 수 없습니다. 겁쟁이, 내가하고 싶은 일 이니까!
cplotts

4
@ Shlomi.A. Luke 's Answer
Jason S

2
WPF의 XAML의 경우 새 창 옵션이 없습니다.
Preza8

2
하지만, 내 VS 2010의 바로 가기에이 방법의 작품 [Ctrl 키] [SHIFT] [N] 파일> 새로 만들기> 프로젝트에 묶여
user1556435

67

Visual Basic, HTML 및 JScript 및 RDL Expression의 경우 PaulB의 답변에Window > New Window 언급 된 옵션 이 비활성화됩니다. 그러나 메뉴 항목을 활성화하기 위해 레지스트리에서 옵션을 변경할 수 있습니다.

다른 모든 언어는 단일 코드 창으로 제한되지 않으므로 레지스트리를 편집하지 않고도 PaulB의 답변 을 사용할 수 있습니다 .

Windows 레지스트리에서 새 창 활성화 [ 1 ] [ 2 ]

  1. 다음 레지스트리 키로 이동하십시오. 이 예제는 Basic (Visual Basic) 용이지만 HTML, JScript 및 RDL Expression 용 키도 있습니다.

    • 64 비트 OS : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • 32 비트 OS : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. 값을 찾아서 Single Code Window Only다음 중 하나를 수행하십시오.

    • 0으로 설정
    • 값 이름 바꾸기
    • 값을 삭제하십시오 ( 주의하십시오 !)

이렇게하면 "새 창"메뉴 항목이 활성화되지만 여전히 메뉴에 표시되지 않을 수 있습니다.

메뉴 항목 추가

실제로 새 창 메뉴 항목을 보려면 메뉴에 다시 추가해야했습니다.

  • 도구> 사용자 정의 ...> 명령> 명령 추가 ...
  • '메뉴 막대'를 선택하고 드롭 다운에서 '창'메뉴를 선택하십시오.
  • 명령 추가 ...> 창> 새 창> 확인

레지스트리 값 복원
메모장에 복사하여 붙여넣고 .reg 파일로 저장 한 다음 파일을 레지스트리로 가져와 초기 설정을 복원하십시오.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages ​​\ Language Services \ Basic]
"단일 코드 창만"= dword : 00000001

C # 파일에 대해 '새 창'메뉴 항목이 이미 활성화되어 있기 때문에 C # 파일의 레지스트리를 편집 할 필요가 없습니다 (VS 2010). VB, HTML 또는 JScript에 대해서만이 작업을 수행하면됩니다. 이 MS Connect 문제 보고서 에 따르면 VB에 대해이 문제가 해결되었으므로 레지스트리 항목을 제거하거나 이름을 바꾸면 기능을 사용할 수 있습니다.
Jason S

1
이것은 Visual Basic 2010 Express에서도 작동합니다.보고 드리겠습니다. 레지스트리 키는 약간 다릅니다 : [HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages ​​\ Language Services \ Basic].
evilspoons

나를 위해 작동하지 않습니다. VS2010을 다시 시작하려고 시도하면 컴퓨터를 재부팅 한 후 다시 기회가 생길 것입니다 ... (레지스트리 항목을 읽고 / 저장 / 업데이트하는 방법을 알고있는 사람)
Mars Robertson

방금 이것을 테스트했습니다 (레지스트리 키가 업데이트 또는 무언가에 의해 덮어 쓰여진 것 같습니다). 재부팅이 필요하지 않았습니다. VS2010을 실행하면서 '새 창'이 여전히 회색으로 표시되어 키를 변경했습니다. 그런 다음 VS2010을 닫고 VS2010을 열면 '새 창'을 사용할 수 있습니다.
Luke Hoffmann

3
VS2010에서 JScript의 레지스트리 비트를 뒤집 으면 JavaScript 파일 (yay)에 대한 두 번째 탭을 열 수 있지만 각 탭 (boo)에는 흰색을 제외하고 아무것도 렌더링되지 않습니다.
G-Wiz

18

파일을여십시오 (여러 탭 그룹을 사용하는 경우 파일이 선택되어 있는지 확인하십시오).

메뉴 분할 (또는 편집기의 세로 스크롤 막대 바로 위에이 작은 덩어리가 있습니다.

이렇게하면 동일한 파일에 대한 두 개의 (수평)보기가 제공됩니다. 모든 편집 작업은 두보기 모두에 반영됩니다.

완료되면 스플리터를 잡고 위로 끝까지 드래그하십시오 (또는 메뉴 스 플리트 제거 ).


2
(스리랑카 : 죄송합니다.보기 행에서 '수평'이 정렬되어 있습니다. AFAIK, 세로 (나란히)보기는 불가능합니다.

7
OP를 읽지 않은 것으로 보입니다. 그곳에서 그는이 사실을 알고 있다고 언급합니다.
Jason S



9

누가의 대답이 효과 가 없었습니다. '새 창'명령은 사용자 정의 설정에 이미 나열되어 있지만 레지스트리 설정을 삭제해도 .js 탭 컨텍스트 메뉴에 표시되지 않습니다.

그래서 나는 다음을 사용했다.

도구

맞춤 설정 ...

건반...

아래로 스크롤하여 창을 선택하십시오.

그리고 바로 가기 키 Ctrl+ Shift+를 누르고 할당했습니다 W.

그것은 나를 위해 일했다.

==== 편집 ====

글쎄, '일했다'는 너무 강했다. 내 키보드 단축키는 실제로 동일한 JavaScript 파일에서 다른 탭을 열지 만 오히려 도움이되지 않으면 내용을 렌더링하지 않습니다. 그냥 빈 흰색 창입니다! 운이 좋을 수도 있습니다.


3
감사. 이것은 VS2012 / VB.net에서 나를 위해 일했습니다. 열린 도구-옵션-(환경에서) 키보드-드롭 다운에서 Visual Basic 6 선택-창 선택 창 명령 창에서 NewWindow-ctrl + n, ctrl + w
CodingSlayer

8

파일을 연 상태에서 명령 창 (메뉴 보기기타 창명령 창 또는 Ctrl+ Alt+ A)으로 이동하십시오.

유형:

Window.NewWindow

그리고

Window.NewVerticalTabGroup

나를 위해 일했습니다 (Visual Studio 2017).

또는 메뉴 사용 :

메뉴 새 창

메뉴 새로운 수직 탭 그룹


당신은 주님 께서이 아들과 함께 일하셨습니다. 감사합니다.
앤드류

4

메뉴, 새로운 수평 / 수직 탭 그룹 이있을 것이라고 생각합니다.


3
AFAI 참조, 다른 탭 그룹에서 동일한 파일을 열 수 없음
Gishu

3

Visual Studio 2013 및 VB.NET으로 작업 할 때 메뉴를 쉽게 사용자 지정하고 "새 창"명령을 추가 할 수 있다는 것을 알았습니다. 레지스트리를 망칠 필요가 없습니다!

신은 왜 마이크로 소프트가 일부 언어에 대한 명령을 포함시키지 않기로 선택했는지 알고있다.


나를 위해 쉽게 일했다! 메뉴 도구 > 사용자 정의 . 그런 다음 명령 탭 의 첫 번째 드롭 다운 에서 을 선택한 다음 명령 추가 버튼 을 클릭 하십시오 . (Visual Studio 2019)
사이버 폰

3

최신 버전 (예 : Visual Studio 2017)

  • 복제하려는 창을 선택하십시오.
  • 창 탭으로 이동하여 목록 상단의 분할을 클릭하십시오.
  • 완료되면 다시 클릭하여 끕니다.

3
두 부분으로 분할 된 창은 두 창과 동일하지 않습니다.
Tipx

1

동일한 파일 세로 탭 그룹 (예 : .vb 파일)에서 열 수없는 파일 형식의 경우

  • Visual Studio의 두 가지 다른 인스턴스 열기
  • 각 인스턴스에서 동일한 파일을 엽니 다
  • IDE 창의 크기를 조정하고 나란히 배치하여 레이아웃을 완성하십시오.

한 인스턴스에서 디스크에 저장하는 경우 다른 인스턴스로 전환 할 때 파일을 다시로드해야합니다. 또한 두 경우 모두에서 편집을 수행하는 경우 두 번째 저장시 해결해야합니다. Visual Studio는 두 경우 모두 다양한 옵션을 제공합니다. 하나의 인스턴스에서만 편집하면 삶이 약간 단순화됩니다.


@Odrade-모든 유형의 파일에 적합한 정답을 알려줄 수 있습니까?
Gishu

@Jason Ok, 그러나 동일한 파일을 여러 번 열어서 나란히 비교할 수 없다고 말하는 것은 여전히 ​​옳지 않습니다. 적어도 .cs 파일의 경우 가능합니다.
Odrade

@Odrade 당신이 맞아요. 그것을 시도하고 수정하기 위해 편집했습니다. 이전 버전을 기준으로 주석을 제거하려는 경우 알려주십시오.
Jason S

@Odrade Luke의 대답 을 시도해 보았습니다 .VB 사용자를 위해 두 개의 VS 인스턴스를 여는 것보다 훨씬 낫습니다.
Jason S

이것은 html 파일에 대한 유일한 해결 방법으로 보입니다. 레지스트리 편집은 단지 두 번째 빈 창을 제공합니다
Chris F Carroll

1

Visual Studio 2005의 사본이 없지만이 프로세스는 Visual Studio 2008에서 작동합니다.

  1. 다른 파일과 함께 xyz.cpp를 엽니 다.
  2. 탭 머리글을 마우스 오른쪽 버튼으로 클릭하고 새 세로 탭 그룹을 선택하십시오.
  3. 첫 번째 탭 그룹에서 다른 파일을 마우스 왼쪽 버튼으로 클릭하십시오.
  4. 솔루션 탐색기를 통해 xyz.cpp를 다시 엽니 다.

이제 별도의 세로 탭 그룹에 두 개의 파일 인스턴스가 있어야합니다.


내 VS2K5 및 VS2K8에서는 두 번째 탭에 원본 인스턴스가 표시됩니다. 솔루션 탐색기에서 두 번 클릭하거나 파일 탐색기에서 드래그 앤 드롭하거나 파일 | 메뉴를 엽니 다.
Simeon Pilgrim

@Simeon-다른 파일을 열지 않은 경우 (1 단계의 두 번째 부분)
si618

원본 파일이 다른 탭 그룹에서 열린 것을 알고 있습니다. 어쩌면 이것은 복제가 허용되는 파일과 다시 관련이 있습니다.
neoswf

0

원래 답변에서 의도 한 결과를 얻을 수있는 해킹을 생각해 냈습니다.

소스 컨트롤의 두 창에 원하는 파일이 있으면 파일을 마우스 오른쪽 버튼으로 클릭하고 비교를 선택할 수 있습니다.

당신이 비교하면 당신은 당신에게 파일의 내용을 보여주는 새로운 창이 호출 diff가 나타납니다.

diff 윈도우가 텍스트를 오염시키는 diff 색상을 가지기 때문에 이것은 이상적이지 않습니다. 참고 : 열려고하는 파일을 비교하여 파일을 비울 수 있으며 창은 매우 못생긴 녹색 배경으로 표시됩니다.

이것은 완벽하지는 않지만 해킹이지만 두 창에서 실제로 동일한 파일을 갖는 유일한 방법이었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.