Mở hai phiên bản của một tệp trong một phiên Visual Studio


555

Tôi có một tập tin, xyz.cpp . Tôi muốn mở hai phiên bản của tệp này trong Visual studio (BTW, tôi đang sử dụng Visual Studio 2005). Tại sao tôi muốn làm như vậy? Tôi muốn so sánh hai phần của cùng một tập tin cạnh nhau. Tôi biết cách giải quyết như:

  1. Tạo một bản sao của tập tin. Nhưng vấn đề là nó không thanh lịch và tôi không muốn tạo ra các bản sao mỗi khi tôi phải đối mặt với điều này.

  2. Tôi có thể chia cửa sổ thành hai. Vấn đề với việc tách nó mà tôi chỉ có thể chia nó theo chiều ngang. Kết quả của sự phân chia ngang là nửa bên phải màn hình của tôi là khoảng trắng.

Nếu tôi có thể tách nó theo chiều dọc hoặc mở hai phiên bản của cùng một tệp, nó sẽ tăng số dòng mã tôi có thể so sánh.


12
Nếu bạn chỉ muốn so sánh các phần của tệp, bạn có thể sử dụng Window | Tách sẽ chia tập tin theo chiều ngang từ giữa.
vexe

@vexe Hoàn hảo. Chính xác những gì tôi cần. Chia đôi cửa sổ, cả hai chỉnh sửa cùng một tệp.
Vincent P

3
Bất kỳ lý do nào bạn không chấp nhận câu trả lời được bình chọn cao nhất?
cp.engr

1
@ cp.engr, từ hồ sơ của mình: "Lần cuối nhìn thấy ngày 6 tháng 12 '09 lúc 12:41". Thật xấu hổ khi người dùng đại diện cao không thể đánh dấu câu trả lời là được chấp nhận.
Bác sĩ Jones

Câu trả lời:


904

Đây là cách để làm điều đó ...

  1. Chọn tab bạn muốn hai bản sao của
  2. Chọn menu WindowNew Window từ menu.
  3. Nhấp chuột phải vào tab mới và chọn Nhóm tab dọc mới

Nếu Cửa sổ mới không được liệt kê trong menu * Window lưu ý rằng lệnh đó tồn tại, ngay cả với Visual Studio 2017. Thêm nó vào menu Window bằng menu Công cụTùy chỉnhLệnh . Tại thời điểm đó, quyết định nơi đặt lệnh Cửa sổ mới và chọn Thêm lệnh .

CẬP NHẬT vào "ngày 30 tháng 7 năm 2018"

Trong Visual Studio Code phiên bản 1.25.1 trở lên

Cách 1

Bạn có thể nhấp chuột trái đơn giản vào tập tin của bạn trong bảng điều khiển bên (explorer) và nhấn Ctrl+ Enter.

Cách 2

Chỉ cần nhấp chuột phải vào tệp của bạn trong bảng điều khiển bên Visual Studio Code (explorer) và chọn tùy chọn đầu tiên mở sang bên .


50
Nếu bạn có sẵn một số không gian màn hình như màn hình thứ hai, bạn cũng có thể kéo tab mới ra khỏi Visual Studio và xem nó, ví dụ, trong màn hình thứ hai.
Artur Carvalho

4
Bạn chỉ có thể làm điều này cho một số loại tệp nhất định ... ví dụ: bạn không thể mở hai cửa sổ trên cùng một tệp .xaml. Đó là một người lập dị, vì đó là những gì tôi muốn làm!
cplotts

4
@ Shlomi.A. Hãy thử Trả lời của Luke
Jason S

2
Đối với XAML trong WPF, tùy chọn Cửa sổ mới không có ở đó.
Preza8

2
Phương pháp này hoạt động, nhưng trên VS 2010 của tôi, phím tắt [Ctrl] [Shift] [N] bị ràng buộc với Tệp> Mới> Dự án
user1556435

67

Đối với Visual Basic, HTML và JScript và RDL Expression, Window > New Windowtùy chọn được đề cập trong câu trả lời của PaulB bị vô hiệu hóa. Tuy nhiên, một tùy chọn có thể được thay đổi trong Registry để kích hoạt mục menu.

Tất cả các ngôn ngữ khác không giới hạn trong một cửa sổ mã duy nhất để bạn có thể sử dụng câu trả lời của PaulB mà không cần chỉnh sửa sổ đăng ký.

Kích hoạt cửa sổ mới trong Windows Registry. [ 1 ] [ 2 ]

  1. Đi đến khoá đăng ký sau. Ví dụ này dành cho Basic (Visual Basic), nhưng khóa cũng có ở đó cho HTML, JScript và RDL Expression.

    • HĐH 64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • HĐH 32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Tìm giá trị Single Code Window Onlyvà thực hiện một trong các thao tác sau:

    • Đặt thành 0
    • Đổi tên giá trị
    • Xóa giá trị ( sử dụng thận trọng !)

Điều này sẽ kích hoạt mục menu "Cửa sổ mới", nhưng nó vẫn có thể không hiển thị trong menu.

Thêm mục menu

Để thực sự thấy mục menu New Window, tôi phải thêm nó vào menu:

  • Công cụ> Tùy chỉnh ...> Lệnh> Thêm lệnh ...
  • Chọn 'Thanh menu', chọn menu 'Cửa sổ' trong danh sách thả xuống
  • Thêm lệnh ...> Cửa sổ> Cửa sổ mới> OK

Khôi phục giá trị đăng ký
Sao chép-dán tệp này vào notepad, lưu dưới dạng tệp .reg và nhập tệp vào sổ đăng ký của bạn để khôi phục cài đặt ban đầu.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages ​​\ Language Services \ Basic]
"Chỉ một cửa sổ mã" = dword: 00000001

Không cần chỉnh sửa sổ đăng ký cho các tệp C # vì mục menu 'Cửa sổ mới' đã được bật cho các tệp C # (trong VS 2010). Bạn chỉ cần làm điều này cho VB, HTML hoặc JScript. Theo báo cáo sự cố MS Connect này, mọi sự cố với lỗi này đều được khắc phục cho VB, bạn chỉ cần xóa hoặc đổi tên mục đăng ký để kích hoạt tính năng này.
Jason S

1
Điều này cũng hoạt động trong Visual Basic 2010 Express, tôi rất vui khi báo cáo. Khóa đăng ký hơi khác một chút: [HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages ​​\ Language Services \ Basic].
ác nhân

Không làm việc cho tôi. Đã thử khởi động lại VS2010, sẽ cho nó một cơ hội khác sau khi khởi động lại máy tính ... (ai biết các mục đăng ký được đọc / lưu trữ / cập nhật như thế nào)
Mars Robertson

Tôi mới kiểm tra cái này (tôi đoán khóa đăng ký của tôi đã bị ghi đè bởi các bản cập nhật hoặc thứ gì đó). Tôi không yêu cầu khởi động lại. Tôi đã thay đổi khóa khi VS2010 đang chạy, 'Cửa sổ mới' vẫn bị mờ đi. Sau đó, đóng VS2010 và mở VS2010 và 'Cửa sổ mới' khả dụng.
Luke Hoffmann

3
Trong VS2010, việc lật bit đăng ký cho JScript sẽ cho phép mở tab thứ hai cho tệp JavaScript (yay), nhưng không có gì ngoại trừ độ trắng được hiển thị trong mỗi tab (boo).
G-Wiz

18

Mở tệp (nếu bạn đang sử dụng nhiều nhóm tab, hãy đảm bảo tệp của bạn được chọn).

Cửa sổ Menu → Chia nhỏ (luân phiên, có cái nub nhỏ này ngay phía trên thanh cuộn dọc của trình soạn thảo - lấy và kéo xuống)

Điều này cung cấp cho bạn hai chế độ xem (ngang) của cùng một tệp. Coi chừng mọi hành động chỉnh sửa sẽ phản ánh trên cả hai chế độ xem.

Khi bạn đã hoàn tất, lấy bộ chia và kéo nó lên hết cỡ (hoặc menu WindowRemove Split ).


2
(Sri: xin lỗi, 'ngang' như trong các hàng của chế độ xem được căn chỉnh ... hoặc một chế độ xem bên trên khác). Không thể xem AFAIK, dọc (cạnh nhau).

7
Có vẻ như chưa đọc OP, nơi anh ta đề cập rằng anh ta nhận thức được điều này.
Jason S



9

Câu trả lời của Luke không làm việc cho tôi. Lệnh 'Cửa sổ mới' đã được liệt kê trong cài đặt tùy chỉnh, nhưng không hiển thị trong menu ngữ cảnh tab .js, mặc dù đã xóa cài đặt đăng ký.

Vì vậy, tôi đã sử dụng:

Công cụ

Tùy chỉnh ...

Bàn phím ...

Cuộn xuống để chọn Window.NewWindow

Và tôi nhấn và gán các phím tắt, Ctrl+ Shift+ W.

Điều đó làm việc cho tôi.

==== CHỈNH SỬA ====

Chà, 'làm việc' quá mạnh. Phím tắt trên bàn phím của tôi thực sự mở một tab khác trên cùng một tệp JavaScript, nhưng thật vô ích, nó không hiển thị nội dung; nó chỉ là một cửa sổ trắng trống rỗng! Bạn có thể có may mắn hơn.


3
Cảm ơn. Điều này làm việc cho tôi cho VS2012 / VB.net. Công cụ đã mở - tùy chọn - bàn phím (trong môi trường) - chọn trực quan 6 cơ bản từ danh sách thả xuống - chọn Window.NewWindow từ danh sách lệnh - nhấn ctrl + n, ctrl + w
CodingSlayer

8

Khi tệp của bạn được mở, hãy chuyển đến cửa sổ lệnh (menu XemWindows khácCửa sổ lệnh hoặc chỉ Ctrl+ Alt+ A)

Kiểu:

Window.NewWindow

Và sau đó

Window.NewVerticalTabGroup

làm việc cho tôi (Visual Studio 2017).

Hoặc sử dụng menu:

Cửa sổ menu → Cửa sổ mới

Menu WindowNhóm tap dọc mới


Bạn đã làm Lãnh chúa làm việc với con trai tôi. Cảm ơn bạn.
Andrew

4

Menu cửa sổ , Nhóm tab ngang / dọc mới sẽ làm, tôi nghĩ vậy.


3
AFAI thấy, Bạn không thể mở cùng một tệp trong các nhóm tab khác nhau
Gishu

3

Khi làm việc với Visual Studio 2013 và VB.NET, tôi thấy rằng bạn có thể dễ dàng tùy chỉnh menu và thêm lệnh "Cửa sổ mới" - không cần phải lộn xộn với sổ đăng ký!

Chúa chỉ biết tại sao Microsoft chọn không bao gồm lệnh cho một số ngôn ngữ ...?


Làm việc dễ dàng cho tôi! Công cụ menu > Tùy chỉnh . Sau đó trong tab Lệnh , chọn Cửa sổ trong danh sách thả xuống đầu tiên, sau đó nhấp vào nút Thêm lệnh và voilà! (Visual Studio 2019)
cyberponk

3

Đối với các phiên bản mới hơn (như Visual Studio 2017)

  • Chọn cửa sổ bạn muốn nhân đôi.
  • Chuyển đến tab cửa sổ và nhấp vào phân chia ở đầu danh sách.
  • Khi bạn đã hoàn tất, nhấp vào nó một lần nữa để tắt nó đi.

3
Một cửa sổ chia làm hai nửa không giống như hai cửa sổ.
Tipx

1

Đối với các loại tệp, trong đó cùng một tệp không thể được mở trong nhóm tab dọc (ví dụ: tệp .vb), bạn có thể

  • Mở 2 phiên bản khác nhau của Visual Studio
  • Mở cùng một tệp trong mỗi trường hợp
  • Thay đổi kích thước các cửa sổ IDE và đặt chúng cạnh nhau để đạt được bố cục của bạn.

Nếu bạn lưu vào đĩa trong một trường hợp, bạn sẽ phải tải lại tệp khi bạn chuyển sang đĩa khác. Ngoài ra, nếu bạn chỉnh sửa trong cả hai trường hợp, bạn sẽ phải giải quyết lần lưu thứ hai. Visual Studio nhắc bạn trong cả hai trường hợp với các tùy chọn khác nhau. Bạn sẽ đơn giản hóa cuộc sống của mình một chút nếu bạn chỉ chỉnh sửa trong một trường hợp.


@Odrade - Bạn có thể chỉ cho tôi câu trả lời đúng hoạt động cho tất cả các loại tệp không ...
Gishu

@Jason Ok, nhưng vẫn không đúng khi tuyên bố rằng bạn không thể mở cùng một tệp nhiều lần để so sánh song song. Điều này rõ ràng là có thể, ít nhất là đối với các tệp .cs.
Odrade

@Odrade Bạn nói đúng. Tôi đã chỉnh sửa để thử và sửa nó. Cho bạn biết trong trường hợp bạn muốn xóa nhận xét dựa trên các phiên bản trước.
Jason S

@Odrade Có xung quanh để thử câu trả lời của Luke Tốt hơn nhiều so với việc mở hai phiên bản VS cho người dùng VB và có upvote của tôi.
Jason S

Đây có vẻ là cách giải quyết duy nhất cho các tệp html, trong đó chỉnh sửa sổ đăng ký chỉ cung cấp một cửa sổ thứ hai trống
Chris F Carroll

1

Tôi không có bản sao của Visual Studio 2005, nhưng quá trình này hoạt động trên Visual Studio 2008:

  1. Mở xyz.cpp cùng với một số tệp khác.
  2. Nhấp chuột phải vào tiêu đề tab và chọn nhóm tab dọc mới.
  3. Nhấp chuột trái vào tập tin khác trong nhóm tab đầu tiên.
  4. Mở xyz.cpp thông qua giải pháp thám hiểm một lần nữa.

Bây giờ bạn sẽ có hai phiên bản của tệp trong các nhóm tab dọc riêng biệt.


Trên VS2K5 và VS2K8 của tôi, nó chỉ hiển thị các phiên bản gốc trong tab thứ hai cho tôi. Đây là nếu tôi nhấp đúp chuột vào Solution Explorer, Drag'n'drop từ File Explorer hoặc qua File | Mở thực đơn.
Simeon Pilgrim

@Simeon - Điều đó xảy ra nếu không có tệp nào khác mở (phần 2 của bước 1.)
si618

Nó biết tệp gốc được mở trong nhóm tab khác. Có lẽ điều này lại liên quan đến các tập tin mà nó cho phép sao chép.
neoswf

0

Tôi đã đưa ra một hack có thể tạo ra kết quả như trong câu trả lời ban đầu.

Nếu bạn có tệp bạn muốn trong hai cửa sổ trong điều khiển nguồn, bạn có thể nhấp chuột phải vào tệp và chọn so sánh, bạn có thể so sánh

Nếu bạn so sánh, bạn sẽ có một cửa sổ mới Gọi là diff, hiển thị cho bạn nội dung của tệp.

Điều này tất nhiên là không lý tưởng vì cửa sổ diff sẽ có các màu khác nhau làm ô nhiễm văn bản. Lưu ý: bạn có thể so sánh tệp bạn muốn mở và tệp trống, sau đó bạn sẽ có cửa sổ trong nền màu xanh lá cây rất xấu.

Điều này không hoàn hảo, nó là một hack, nhưng đó là cách duy nhất tôi thấy thực sự có cùng một tệp trong hai cửa sổ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.