ยุบ #regions ทั้งหมดเท่านั้น (!) ใน C # (Visual Studio)


107

มีแป้นพิมพ์ลัดและคำสั่งเมนูจำนวนมากเพื่อขยายหรือยุบพับทั้งหมดในเอกสารปัจจุบันโดยอัตโนมัติ Ctrl+ M, Ctrl+ Lสลับพับทั้งหมดแบบวนซ้ำจากเนมสเปซด้านบนไปจนถึงวิธีการและความคิดเห็นภายใน โดยทั่วไปทุกอย่างที่มีไอคอน [+] ที่ขอบด้านซ้าย Ctrl+ M, Ctrl+ Oน้อยกว่าเล็กน้อย แต่ก็ยังสัมผัสถึงวิธีการและความคิดเห็นในชั้นเรียน

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

มีทางลัดหรือส่วนขยายที่ซ่อนอยู่หรือไม่?

ฉันต้องการโซลูชันคีย์บอร์ดสำหรับ Visual Studio 2015 (ตอนนี้ RC)

ในกรณีที่มีคนถามว่าทำไม: ฉันต้องการดูภาพรวมของไฟล์ แต่จะเห็นรายละเอียดทั้งหมดทันทีที่ตัดสินใจดูภายในภูมิภาคเดียว


อัปเดต:

แนวทางแก้ไขในปี 2020

เนื่องจากคำถามนี้ได้รับคำตอบมากมายบางคำถามก็ไม่มีประโยชน์และบางคนก็ล้าสมัยโซลูชันการทำงานสำหรับ Visual Studio 2019 สามารถพบได้ในคำตอบที่ไม่ได้รับการยอมรับที่นี่: https://stackoverflow.com/a/58999093/143684


ฉันไม่คิดอย่างนั้น (เปิดให้แก้ไข) คุณได้ลองใช้มุมมองชั้นเรียนหรือไม่โดยจะแสดงสมาชิกชั้นเรียนทั้งหมด (ไม่ใช่รายการแบบเลื่อนลงที่ด้านบนสุดของโปรแกรมแก้ไขข้อความ) และคุณสามารถดับเบิลคลิกเพื่อข้ามไปยังสมาชิกที่เลือกได้
amcdermott

1
ฉันคิดว่าไม่มีสิ่งนั้น Ctrl + M, Ctrl + O ใกล้เคียงที่สุด
voytek

หน้าต่างมุมมองคลาสประกอบด้วยรายการทั้งหมดในรายการเดียวไม่ใช่ "ภูมิภาค" เลย นั่นไม่ใช่สิ่งที่ฉันใช้สำหรับภูมิภาค ฉันต้องการภูมิภาคเพื่อค้นหาสมาชิกตามหัวข้ออย่างรวดเร็วโดยเฉพาะอย่างยิ่งในชั้นเรียนยาวที่มีวิธีการคล้ายกันจำนวนน้อยสำหรับแต่ละประเภทของโมเดล ภูมิภาคจัดกลุ่มตามประเภทโมเดลที่นี่
ygoe

คำตอบ:


217

ใน Visual Studio 2017 ฉันต้องเปิดใช้งาน'Collapse #regions เมื่อยุบเป็นคำจำกัดความ'ใน

Tools -> Options -> Text Editor -> C# -> Advanced

อย่างชัดเจนเพื่อยุบทั้งหมดเมื่อกดCtrl+ M+O


8
น่าเสียดายที่สิ่งนี้พังทลายทุกอย่าง (เกือบ) ไม่ใช่เฉพาะภูมิภาค นี่ไม่ใช่สิ่งที่ฉันกำลังมองหา ส่วนขยาย Quick Launch Tasks ยังคงมีอยู่สำหรับ VS 2017 และสามารถติดตั้งแยกต่างหากได้แล้วดูความคิดเห็นอื่น ๆ
ygoe

21
นี่อาจไม่ใช่สิ่งที่ OP ขอ แต่เป็นสิ่งที่ฉันกำลังมองหา
Homer

11
ตัวเลือกในรุ่นปัจจุบันคือ "ยุบ #regions เมื่อยุบเป็นคำจำกัดความ" และอยู่ในเครื่องมือ> ตัวเลือก> ตัวแก้ไขข้อความ> C #> ขั้นสูง นี่คือสิ่งที่ฉันกำลังมองหาเช่นกัน ทำให้ Ctrl + M + O ทำงานเหมือนใน VS 2015
Matt Becker

66

Ctrl+ M+ Oจะยุบทั้งหมด

Ctrl+ M+ Lจะขยายทั้งหมด (ใน VS 2013 - สลับการสรุปทั้งหมด)

Ctrl+ M+ Pจะขยายทั้งหมดและปิดการใช้งานโครงร่าง

Ctrl+ M+ Mจะยุบ / ขยายส่วนปัจจุบัน

ตัวเลือกเหล่านี้ยังอยู่ในเมนูบริบทภายใต้โครงร่าง

คลิกขวาในตัวแก้ไข -> การสรุปเพื่อค้นหาตัวเลือกทั้งหมด (หลังจากปิดการใช้งานการจัดโครงร่างให้ใช้ขั้นตอนเดียวกันนี้เพื่อเปิดใช้งานการออกนอกประเทศ)


1
นี่เป็นคำตอบเดียวที่ถูกต้องจริงๆ ... CTRL + (M ตามด้วย O / L) จะขยาย / ยุบเฉพาะภูมิภาคในหน้าที่ตอบคำถามเดิมโดยตรง
Levi Fuller

15
ไม่จริงอีกต่อไปกับ VS2017RC การรวมพื้นที่ทั้งหมดจะไม่ยุบภูมิภาค (อย่างน้อยรุ่นปัจจุบัน: 15.0.2620.0)
François

3
สำหรับ VS 2017 ดูคำตอบจาก @Myz ด้านล่าง
Jeffrey Harmon

29

ส่วนขยาย Visual Studio Productivity Power Tools 2015จาก Microsoft มีฟีเจอร์ที่เรียกว่า Quick Launch Tasks ที่เพิ่มคำสั่งใหม่ในเมนู Quick Launch หนึ่งในนั้นคือCollapseRegionsและทำได้อย่างนั้น

คำสั่งตรงกันข้ามคือExpandRegionsและขยายทุกภูมิภาคเพื่อการเรียกดูไฟล์ทั้งหมดอย่างรวดเร็ว คำสั่งเหล่านี้สามารถใช้ได้อย่างรวดเร็วโดยการกดปุ่มCtrlQลัดและพิมพ์Collresp Expจากนั้นกดEnter(หากคุณไม่มีคำสั่งอื่นที่มีคำนำหน้าเหมือนกัน)


7
นี่คือส่วนขยายที่เกี่ยวข้องสำหรับ Visual Studio 2017: Quick Launch Tasks
ygoe

ใช้กับ Visual Studio 2019 ไม่ได้อีกต่อไปเนื่องจากเปลี่ยนวิธีการทำงานของ Quick Tasks ในการค้นหา
Chronicle

20

ในการยุบภูมิภาค: เครื่องมือ> ตัวเลือก> ตัวแก้ไขข้อความ> C #> ขั้นสูง> เลือก "ยุบ # ภูมิภาคเมื่อยุบเป็นคำจำกัดความ"

ยุบรูปภาพ #regions


โอ้เรามีอันนั้นแล้วเมื่อ 3 ปีก่อน ดูคำตอบอันดับต้น ๆ
ygoe

10

ติ๊กเครื่องหมายถูกในการตั้งค่า -> TextEditor -> C # -> ขั้นสูง -> ยุบ # ภูมิภาคเมื่อยุบคำจำกัดความ

จากนั้นคลิกขวาในตัวแก้ไข> โครงร่าง> ยุบเพื่อกำหนดนิยาม


8

ดูเหมือนสิ่งที่ใกล้เคียงที่สุดคือCtrl+ M, Ctrl+S

ซึ่งจะยุบภูมิภาคปัจจุบันที่คุณอยู่ในขณะที่Ctrl+ M, Ctrl+ Eจะขยายขอบเขตปัจจุบันที่คุณอยู่

รายการแป้นพิมพ์ลัดเริ่มต้น:

https://msdn.microsoft.com/en-us/library/da5kh0wa(v=vs.140).aspx


8

ฉันไม่รู้ว่ามันใหม่หรือเปล่า แต่มีการตั้งค่าสำหรับ c # text edior:

การตั้งค่า -> TextEditor -> C # -> ขั้นสูง -> ยุบ #regions เมื่อยุบคำจำกัดความ

เมื่อการตั้งค่าCtrlM CtrlOจะยุบ #regions


8

ฉันรู้ว่านี่เป็นคำถามเก่า แต่นี่คือการอัปเดตสำหรับ Visual Studio 2019:

โซลูชัน Quick Tasks จากคำตอบของ @ ygoe ใช้ไม่ได้กับ Visual Studio 2019 เนื่องจากเวอร์ชันนั้นเปลี่ยนวิธีการค้นหาแถบงานด่วน นอกจากนี้ยังไม่เคยเป็นวิธีแก้ปัญหาที่ต้องการสำหรับคำถามเดิมเนื่องจากคุณต้องพิมพ์คำสั่งด่วนแทนที่จะมีแป้นพิมพ์ลัด

ฉันพบวิธีแก้ปัญหาที่แตกต่างกันในตลาดกลางซึ่งจะทำการยุบและขยายทุกภูมิภาคในไฟล์ที่เปิดอยู่ในปัจจุบันด้วยแป้นพิมพ์ลัด: ยุบภูมิภาค

จากหน้าส่วนขยาย:

การผูกคีย์เริ่มต้นคือ (Ctrl + R, Ctrl + Num +) และ (Ctrl + R, Ctrl + Num-) สามารถเปลี่ยนแปลงได้ใน Tools-> Options-> Environment-> Keyboard


ขอบคุณสำหรับข้อมูลดีๆนี้! เนื่องจากฉันไม่ได้ใช้งานด่วนเพื่ออย่างอื่นมากนักฉันจึงอาจเปลี่ยนไปใช้ส่วนขยายนั้น ผ่านการทดสอบและใช้งานได้ (ใน VS 2017 และ 2019)
ygoe

4

ขอแนะนำให้ใช้ส่วนขยาย Visual Studio ฟรี "Menees VS Tools Extension for Visual Studio" เพียงค้นหาใน Tools -> Extensions and Updates ใน Visual Studio เมื่อติดตั้งแล้วคุณก็ต้องตีCtrl+ M+ Kและเพียงแค่ภูมิภาคจะทรุดตัวลง นี่คือเว็บไซต์ของพวกเขาhttps://marketplace.visualstudio.com/items?itemName=BillMenees.MeneesVSTools2013

ในการแก้ไขการตั้งค่าให้ดูที่ Tools -> Options -> Menees VS Tools -> General


-2

เลือกทั้งหมดผ่านCtrl Aจากนั้นCtrl M M

เช่นกดMสองครั้งในขณะที่กดค้างไว้Ctrl


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