เปิดสองอินสแตนซ์ของไฟล์ในเซสชัน Visual Studio เดียว


555

ฉันมีไฟล์xyz.cpp ฉันต้องการเปิดไฟล์นี้สองอินสแตนซ์ใน Visual studio (BTW ฉันใช้ Visual Studio 2005) ทำไมฉันถึงต้องการทำเช่นนั้น? ฉันต้องการเปรียบเทียบสองส่วนของไฟล์เดียวกันแบบเคียงข้างกัน ฉันรู้วิธีแก้ปัญหาเช่น:

  1. ทำสำเนาของไฟล์ แต่ปัญหาคือมันไม่หรูหราและฉันไม่ต้องการทำสำเนาทุกครั้งที่ฉันต้องเผชิญกับสิ่งนี้

  2. ฉันสามารถแบ่งหน้าต่างออกเป็นสองส่วน ปัญหาเกี่ยวกับการแบ่งมันที่ฉันสามารถแยกมันในแนวนอนเท่านั้น ผลลัพธ์ของการแบ่งตามแนวนอนคือด้านขวาของหน้าจอของฉันคือพื้นที่สีขาว

ถ้าฉันสามารถแยกมันในแนวตั้งหรือเปิดสองอินสแตนซ์ของไฟล์เดียวกันมันจะเพิ่มจำนวนบรรทัดของโค้ดที่ฉันสามารถเปรียบเทียบได้


12
หากคุณต้องการเพียงแค่เปรียบเทียบส่วนต่าง ๆ ของไฟล์คุณสามารถใช้ Window | แยกซึ่งจะแบ่งไฟล์ในแนวนอนจากตรงกลาง
vexe

@vexe สมบูรณ์แบบ สิ่งที่ฉันต้องการ แยก windows ทั้งสองแก้ไขไฟล์เดียวกัน
Vincent P

3
เหตุผลใดที่คุณไม่ยอมรับคำตอบที่ได้รับคะแนนสูงสุด?
cp.engr

1
@ cp.engr จากโปรไฟล์ของเขา: "เห็นล่าสุด 6 ธันวาคม '09 ที่ 12:41" เป็นเรื่องน่าละอายที่ผู้ใช้ตัวแทนระดับสูงไม่สามารถทำเครื่องหมายคำตอบตามที่ยอมรับได้
หมอโจนส์

คำตอบ:


904

นี่คือวิธีที่จะทำ ...

  1. เลือกแท็บที่คุณต้องการสองชุด
  2. เลือกเมนูหน้าต่างหน้าต่างใหม่จากเมนู
  3. คลิกขวาที่แท็บใหม่และเลือกกลุ่มแท็บแนวตั้งใหม่

ถ้าหน้าต่างใหม่ไม่ได้ระบุไว้ในหมายเหตุ * หน้าต่างเมนูคำสั่งที่ไม่อยู่แม้ในขณะที่ของ Visual Studio 2017 เพิ่มไปยังหน้าต่างเมนูโดยใช้เมนูเครื่องมือปรับแต่ง → คำสั่ง ณ จุดที่ตัดสินใจที่จะใส่หน้าต่างใหม่คำสั่งและเลือกเพิ่มคำสั่ง

อัปเดตเมื่อ "30 กรกฎาคม 2018"

ใน Visual Studio Code เวอร์ชัน 1.25.1 และใหม่กว่า

วิธีที่ 1

คุณสามารถคลิกซ้ายที่ง่ายในไฟล์ของคุณในด้านแบน (Explorer) และกด+CtrlEnter

วิธีที่ 2

เพียงแค่คลิกขวาบนไฟล์ของคุณใน Visual Studio รหัสด้านแบน (Explorer) และเลือกตัวเลือกแรกที่เปิดไปทางด้านข้าง


50
หากคุณมีพื้นที่หน้าจอว่างเช่นจอภาพที่สองคุณสามารถลากแท็บใหม่ออกจาก Visual Studio และดูตัวอย่างเช่นในจอภาพที่สอง
Artur Carvalho

4
คุณสามารถทำได้สำหรับไฟล์บางประเภท ... ตัวอย่างเช่นคุณไม่สามารถเปิดสองหน้าต่างในไฟล์. xaml เดียวกันได้ นั่นคือคนเกียจคร้านเพราะนั่นคือสิ่งที่ฉันต้องการจะทำ!
cplotts


2
สำหรับ XAML ใน WPF ตัวเลือก New Window ไม่ได้อยู่ที่นั่น
Preza8

2
วิธีนี้ใช้งานได้ แต่บน VS 2010 ของฉันทางลัด [Ctrl] [Shift] [N] ถูกผูกไว้กับไฟล์> ใหม่> โครงการ
user1556435

67

สำหรับ Visual Basic, HTML และ JScript และ RDL Expression Window > New Windowตัวเลือกที่กล่าวถึงในคำตอบของ PaulBจะถูกปิดใช้งาน อย่างไรก็ตามตัวเลือกสามารถเปลี่ยนแปลงได้ใน Registry เพื่อเปิดใช้งานรายการเมนู

ภาษาอื่น ๆ ทั้งหมดไม่ได้ จำกัด เพียงหน้าต่างรหัสเดียวดังนั้นคุณสามารถใช้คำตอบของ PaulBโดยไม่ต้องแก้ไขรีจิสทรี

เปิดใช้งานหน้าต่างใหม่ใน Windows Registry [ 1 ] [ 2 ]

  1. ไปที่รีจิสตรีคีย์ต่อไปนี้ ตัวอย่างนี้สำหรับ Basic (Visual Basic) แต่ที่สำคัญคือ HTML, JScript และ RDL Expression

    • ระบบปฏิบัติการ 64 บิต: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • ระบบปฏิบัติการ 32 บิต: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. ค้นหาค่าSingle Code Window Onlyและทำอย่างใดอย่างหนึ่งต่อไปนี้:

    • ตั้งเป็น 0
    • เปลี่ยนชื่อค่า
    • ลบค่า ( ใช้ความระมัดระวัง !)

สิ่งนี้จะเปิดใช้งานรายการเมนู "หน้าต่างใหม่" แต่อาจยังไม่ปรากฏให้เห็นในเมนู

การเพิ่มรายการเมนู

หากต้องการดูรายการเมนูหน้าต่างใหม่ฉันต้องเพิ่มกลับไปที่เมนู:

  • เครื่องมือ> ปรับแต่ง ... > คำสั่ง> เพิ่มคำสั่ง ...
  • เลือก 'แถบเมนู' เลือกเมนู 'หน้าต่าง' ในเมนูแบบเลื่อนลง
  • เพิ่มคำสั่ง ... > หน้าต่าง> หน้าต่างใหม่> ตกลง

การคืนค่า Registry
Copy-paste สิ่งนี้เพื่อ notepad, บันทึกเป็นไฟล์. reg และนำเข้าไฟล์ไปยังรีจิสทรีของคุณเพื่อเรียกคืนการตั้งค่าเริ่มต้น

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages ​​\ Language Services \ Basic Services]
"หน้าต่างรหัสเดียวเท่านั้น" = 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 HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages ​​\ Language
evilspoons

ไม่ได้ผลสำหรับฉัน พยายามรีสตาร์ท VS2010 จะให้โอกาสอีกครั้งหลังจากรีบูตเครื่องคอมพิวเตอร์ ... (ใครจะรู้ว่ามีการอ่าน / จัดเก็บ / อัปเดตรายการรีจิสตรีอย่างไร)
Mars Robertson

ฉันเพิ่งทดสอบสิ่งนี้ (ฉันเดาว่ารีจิสตรีคีย์ถูกเขียนทับโดยการอัพเดตหรือบางอย่าง) ฉันไม่ต้องการการรีบูต ฉันเปลี่ยนรหัสด้วยการใช้ VS2010 'หน้าต่างใหม่' ยังคงเป็นสีเทา จากนั้นปิด VS2010 และเปิด VS2010 และ 'หน้าต่างใหม่' พร้อมใช้งาน
ลุคฮอฟฟ์มันน์

3
ใน VS2010 การพลิกบิตรีจิสตรีสำหรับ JScript จะอนุญาตให้เปิดแท็บที่สองสำหรับไฟล์ JavaScript (yay) แต่ไม่มีการแสดงผลยกเว้นความขาวในแต่ละแท็บ (boo)
G-Wiz

18

เปิดไฟล์ (หากคุณใช้หลายกลุ่มแท็บตรวจสอบให้แน่ใจว่าได้เลือกไฟล์ของคุณแล้ว)

หน้าต่างเมนู→ แยก (อีกทางหนึ่งมีปุ่มเล็ก ๆ อยู่เหนือแถบเลื่อนแนวตั้งของเครื่องมือแก้ไข - จับมันแล้วลากลง)

สิ่งนี้จะให้มุมมองสองไฟล์ (แนวนอน) ของไฟล์เดียวกัน ระวังว่าการแก้ไขใด ๆ จะส่งผลต่อทั้งสองมุมมอง

เมื่อเสร็จแล้วให้จับตัวแยกและลากขึ้นมาจนสุด (หรือหน้าต่างเมนู→ ลบแยก )


2
(ศรี: ขออภัย 'แนวนอน' ในแถว 'มุมมอง' ถูกจัดแนว ... หรือมุมมองหนึ่งมุมด้านบน) ไม่สามารถใช้ AFAIK มุมมองแนวตั้ง (เคียงข้างกัน)

7
ดูเหมือนจะไม่ได้อ่าน OP ซึ่งเขากล่าวว่าเขารู้เรื่องนี้มาก
Jason S


17

ไปที่เมนูWindowsหน้าต่างใหม่ :

ป้อนคำอธิบายภาพที่นี่


และรางวัลโนเบลสำหรับการแก้ปัญหาที่ดีที่สุดในลิขสิทธิ์ทั้งหมดจะมอบให้คุณ
@Kishore

9

คำตอบของลุคไม่ได้ผลสำหรับฉัน คำสั่ง 'หน้าต่างใหม่' ได้แสดงรายการไว้แล้วในการตั้งค่าแบบกำหนดเอง แต่ไม่แสดงในเมนูบริบทแท็บ. js แม้จะเป็นการลบการตั้งค่ารีจิสทรี

ดังนั้นฉันจึงใช้:

เครื่องมือ

กำหนดเอง ...

แป้นพิมพ์ ...

เลื่อนลงเพื่อเลือก Window.NewWindow

Ctrlและผมกดและได้รับมอบหมายปุ่มทางลัด Shift+ W+

ที่ทำงานให้ฉัน

==== แก้ไข ====

ดี 'ทำงาน' แข็งแกร่งเกินไป แป้นพิมพ์ลัดของฉันเปิดแท็บอื่นในไฟล์ JavaScript เดียวกันได้ แต่ไม่ช่วยแสดงผลเนื้อหา มันเป็นเพียงหน้าต่างสีขาวที่ว่างเปล่า! คุณอาจโชคดีกว่า


3
ขอบคุณ สิ่งนี้ใช้ได้กับฉันสำหรับ VS2012 / VB.net เครื่องมือที่เปิด - ตัวเลือก - (ภายใต้สภาพแวดล้อม) แป้นพิมพ์ - เลือก visual Basic 6 จากดรอปดาวน์ - เลือก Window.NewWindow จากรายการคำสั่ง - กด ctrl + n, ctrl + w
CodingSlayer

8

เมื่อเปิดไฟล์ของคุณไปที่หน้าต่างคำสั่ง (เมนูมุมมองหน้าต่าง Windowsอื่น ๆหน้าต่างคำสั่งหรือเพียงแค่Ctrl+ Alt+ A)

ประเภท:

Window.NewWindow

และจากนั้น

Window.NewVerticalTabGroup

ทำงานให้ฉัน (Visual Studio 2017)

หรือใช้เมนู:

หน้าต่างเมนู→ หน้าต่างใหม่

หน้าต่างเมนู→ กลุ่มแตะแนวตั้งใหม่


ขุนนางทำงานกับลูกชายของฉันคนนี้ ขอบคุณ.
แอนดรู

4

เมนูWindow , กลุ่มแท็บแนวนอน / แนวตั้งใหม่ที่นั่นฉันคิดว่า


3
AFAI เห็นคุณไม่สามารถเปิดไฟล์เดียวกันในกลุ่มแท็บที่แตกต่างกัน
Gishu

3

เมื่อทำงานกับ Visual Studio 2013 และ VB.NET ฉันพบว่าคุณสามารถปรับแต่งเมนูและเพิ่มคำสั่ง "หน้าต่างใหม่" ได้อย่างง่ายดาย - ไม่จำเป็นต้องยุ่งกับรีจิสทรี!

พระเจ้าเท่านั้นที่รู้ว่าทำไม Microsoft เลือกที่จะไม่รวมคำสั่งสำหรับบางภาษา ... ?


ทำงานได้อย่างง่ายดายสำหรับฉัน! เมนูเครื่องมือ > ปรับแต่ง จากนั้นในแท็บคำสั่งเลือกหน้าต่างในดรอปดาวน์แรกจากนั้นคลิกปุ่มเพิ่มคำสั่งและทำ! (Visual Studio 2019)
cyberponk

3

สำหรับเวอร์ชั่นที่ใหม่กว่า (เช่น Visual Studio 2017)

  • เลือกหน้าต่างที่คุณต้องการทำซ้ำ
  • ไปที่แท็บหน้าต่างและคลิกที่แยกที่ด้านบนของรายการ
  • เมื่อเสร็จแล้วให้คลิกอีกครั้งเพื่อสลับ

3
หน้าต่างที่แบ่งเป็นสองส่วนจะไม่เหมือนกับสองหน้าต่าง
Tipx

1

สำหรับประเภทไฟล์ที่ไม่สามารถเปิดไฟล์เดียวกันในกลุ่มแท็บแนวตั้ง (เช่นไฟล์. vb) คุณสามารถทำได้

  • เปิด2 อินสแตนซ์ต่าง ๆ ของ Visual Studio
  • เปิดไฟล์เดียวกันในแต่ละอินสแตนซ์
  • ปรับขนาดหน้าต่าง IDE และวางไว้ข้าง ๆ เพื่อให้ได้เลย์เอาต์ของคุณ

หากคุณบันทึกลงดิสก์ในอินสแตนซ์หนึ่งคุณจะต้องโหลดไฟล์ซ้ำเมื่อสลับไปที่อีกอัน นอกจากนี้หากคุณทำการแก้ไขในทั้งสองกรณีคุณจะต้องแก้ไขในการบันทึกครั้งที่สอง Visual Studio พร้อมท์ให้คุณใช้ตัวเลือกต่าง ๆ ทั้งสองกรณี คุณจะทำให้ชีวิตของคุณง่ายขึ้นเล็กน้อยหากคุณแก้ไขในตัวอย่างเดียวเท่านั้น


@Odrade - คุณสามารถชี้ให้ฉันคำตอบที่ถูกต้องที่งานสำหรับทุกประเภทของไฟล์ ...
Gishu

@ Jason Ok แต่ก็ยังไม่ถูกต้องที่จะระบุว่าคุณไม่สามารถเปิดไฟล์เดียวกันหลาย ๆ ครั้งเพื่อเปรียบเทียบแบบเคียงข้างกัน เป็นไปได้อย่างชัดเจนว่าอย่างน้อยสำหรับไฟล์. cs
Odrade

@Odrade คุณพูดถูก ฉันแก้ไขเพื่อพยายามแก้ไขให้ถูกต้อง แจ้งให้คุณทราบในกรณีที่คุณต้องการลบความคิดเห็นตามเวอร์ชันก่อนหน้า
Jason S

@Odrade ลองใช้คำตอบของลุคมันดีกว่าการเปิด VS สองอินสแตนซ์สำหรับผู้ใช้ VB และมี upvote ของฉัน
Jason S

นี้ดูเหมือนว่าวิธีแก้ปัญหาเฉพาะที่ทำงานให้กับไฟล์ HTML, ที่แก้ไขรีจิสทรีเพียงให้หน้าต่างที่สองว่างเปล่า
คริสคาร์โรลล์ F

1

ฉันไม่มีสำเนาของ Visual Studio 2005 แต่กระบวนการนี้ใช้กับ Visual Studio 2008:

  1. เปิด xyz.cpp พร้อมกับไฟล์อื่น
  2. คลิกขวาที่ส่วนหัวแท็บและเลือกกลุ่มแท็บแนวตั้งใหม่
  3. คลิกซ้ายที่ไฟล์อื่น ๆ ในกลุ่มแท็บแรก
  4. เปิด xyz.cpp ผ่านตัวสำรวจโซลูชันอีกครั้ง

ตอนนี้คุณควรมีสองอินสแตนซ์ของไฟล์ในกลุ่มแท็บแนวตั้งแยกต่างหาก


บน VS2K5 และ VS2K8 ของฉันมันเพิ่งแสดงอินสแตนซ์ดั้งเดิมในแท็บที่สองให้ฉัน นี่คือถ้าฉันคลิกสองครั้งในโซลูชัน Explorer, Drag'n'drop จาก File Explorer หรือผ่านทางไฟล์ | เปิดเมนู
Simeon Pilgrim

@Simeon - ที่เกิดขึ้นถ้าไม่มีอีกเปิดไฟล์ (ส่วนที่ 2 ของขั้นตอนที่ 1)
si618

มันรู้ว่าไฟล์ต้นฉบับถูกเปิดในกลุ่มแท็บอื่น อาจเกี่ยวข้องกับไฟล์ที่อนุญาตให้ทำซ้ำอีกครั้ง
neoswf

0

ฉันคิดแฮ็คที่อาจให้ผลลัพธ์ตามที่ตั้งใจไว้ในคำตอบเดิม

หากคุณมีไฟล์ที่คุณต้องการในสองหน้าต่างในการควบคุมแหล่งที่มาคุณสามารถคลิกขวาที่ไฟล์และเลือกเปรียบเทียบคุณสามารถเปรียบเทียบ

หากคุณเปรียบเทียบคุณจะมีหน้าต่างใหม่ที่เรียกว่า diff แสดงเนื้อหาของไฟล์ที่คุณแสดง

แน่นอนว่าไม่เหมาะเนื่องจากหน้าต่าง diff จะมีสีต่างที่ทำให้ข้อความสกปรก หมายเหตุ: คุณสามารถเปรียบเทียบไฟล์ที่คุณต้องการเปิดและไฟล์ว่างจากนั้นคุณจะมีหน้าต่างในพื้นหลังสีเขียวที่น่าเกลียดมาก

มันไม่สมบูรณ์แบบมันเป็นแฮ็ค แต่มันเป็นวิธีเดียวที่ฉันพบว่ามีไฟล์เดียวกันในสองหน้าต่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.