แป้นพิมพ์ลัด JetBrains / IntelliJ เพื่อยุบวิธีการทั้งหมด


226

ฉันกำลังทำงานกับรหัสดั้งเดิมที่มีคลาสที่มี 10,000 บรรทัดของรหัสและมีวิธี 100s มีทางลัดสำหรับ JetBrains IDE ใด ๆ (เนื่องจากทางลัดน่าจะถูกใช้ร่วมกันข้ามพวกเขาทั้งหมด) เพื่อยุบวิธีการ / ฟังก์ชั่นทั้งหมดเพื่อให้มีเพียงลายเซ็นของวิธีการที่จะแสดง?

บางสิ่งเช่นนี้

public String myMethod(String arg1, int arg2){...}

public String mySecondMethod(String arg1, int arg2){...}

12
คุณอาจจะดูที่รหัส IntelliJ พับลัด ฉันเดาว่า Ctrl + Shift + ลบเป็นสิ่งที่คุณต้องการ
lifus

yeahhhh ฉันไม่รู้ว่ามันถูกเรียกว่าการพับโค้ดดังนั้นฉันจึงหาไม่พบ ขอบคุณ!
แบรด

3
ฉันจะถูกล่อลวงให้ลงคะแนนยกเว้นฉันเกือบจะร้องไห้เมื่อคุณพูดว่า "คลาสที่มี 10,000 บรรทัดของรหัสและมีประมาณ 100 วิธี" ดังนั้น +1 สำหรับลอง
Peter Lawrey

ฮ้า ฉันก็จะเหมือนกัน แต่มันไม่ใช่ความผิดของฉัน ฉันได้รับสิ่งนี้
Brad

4
ฉันรู้ว่าสิ่งนี้ไม่ตอบคำถามตามที่ถาม แต่Ctrl-F12จะเปิดตัวนำทางเพื่อข้ามระหว่างวิธีการอื่น ๆ (คุณสามารถ จำกัด รายการวิธีให้แคบลงโดยพิมพ์ในมุมมองโครงสร้างนี้ด้วย) โครงสร้างบานหน้าต่าง ( Alt-7) เพิ่มมากขึ้น ตัวเลือก. นี่อาจเป็นวิธีที่มีประสิทธิภาพมากกว่าในการสำรวจไฟล์ที่มีวิธีการมากมายดังนั้นฉันจึงทิ้งคำแนะนำไว้ที่นี่เพื่อชาว Google ในอนาคต
kghastie

คำตอบ:


432

คุณอาจจะดูที่รหัส IntelliJ พับลัด

สำหรับ Windows / Linux ทำได้: Ctrl+ Shift+-

สำหรับ mac ให้ใช้Command+ Shift+-

จะแฉอีกครั้งทำCtrl+ Shift+ +หรือ Command+ Shift+ +respectivley


10
คำสั่งที่ไม่ยุบซ้ำทุกอย่างภายในเมธอดก็น่าจะดี
trinity420

1
Ctrl + -: ยุบวิธีการปัจจุบัน
Ali_dev

คำตอบด้านล่างดีกว่ามากเพราะมันมีความละเอียดทั้งหมดที่ฉันต้องการ!
Angelos Pikoulas

@Ali_dev มีวิธีการเช่นเดียวกันกับวิธีการทั้งหมดหรือไม่
shashwat

@shashwat ไม่ถูกต้อง คุณสามารถใช้ Ctrl + Shift + Minus เพื่อยุบทั้งหมดจากนั้นใช้ Ctrl + Alt + Plus เพื่อเปิดหนึ่งครั้งซ้ำ
Ali_dev

86

ข้อเสนอแนะด้านบนของCtrl+ Shift+ -code จะพับบล็อคโค้ดทั้งหมดซ้ำ ๆ ฉันแค่ต้องการพับวิธีการสำหรับชั้นเรียนของฉัน

Code> Folding> Expand all to level>1

Code > Folding > Expand all to level > 1ฉันจัดการเพื่อให้บรรลุนี้โดยใช้ตัวเลือกเมนู

ฉันมอบหมายใหม่ให้กับCtrl+ NumPad-1ซึ่งให้วิธีที่รวดเร็วในการยุบชั้นเรียนของฉันตามวิธีการของพวกเขา

ใช้งานได้ใน 'ระดับบล็อก' ของไฟล์และถือว่าคุณมีคลาสที่กำหนดไว้ที่ระดับบนสุดของไฟล์ของคุณซึ่งใช้งานได้กับรหัสเช่น PHP แต่ไม่ใช่สำหรับ JavaScript (ปิดซ้อนซ้อนเป็นต้น)


4
นี่ควรเป็นคำตอบที่ IMO ยอมรับ แก้ปัญหาได้ใน 1 ขั้นตอนและแก้ไขได้ตามที่ขอ หากคุณตอบคำถามที่ได้รับการยอมรับคุณจะพับทุกอย่างที่สามารถพับแล้วคลี่ออกเพื่อดูวิธีการของคุณ ฉันได้ทำหลังและก็ไม่ได้ว่าใช้เวลานาน แต่มันเป็นเรื่องดีที่จะรู้ว่าฉันสามารถข้ามขั้นตอนบางอย่างกับอดีตจากการโพสต์นี้ ขอบคุณ!
John Pancoast

1
ดีนี่มันทำ เพียง im ปัญหาเฉพาะหน้าในขณะนี้คือฉันลาดเททำมันได้โดยการกดปุ่มแป้นพิมพ์เป็นฉันมี MacbookPro numpadไม่มี จะต้องไปยัง Google เกี่ยวกับวิธีกำหนดคีย์ที่กำหนดเองที่ฉันคิด ถอนหายใจ
CodeGodie

IntelliJ มี keymap เริ่มต้นสำหรับสิ่งนี้: Ctrl+ NumPad-*ตามด้วยระดับการพับที่คุณต้องการป้อนบน NumPad
แมตต์ซี

มันพังบล็อกภายในวิธี! ไม่มีระดับ 0 เท่าเลยเหรอ?
Amir Fo

22

ไปที่ตัวเลือกเมนูรหัส> การพับเพื่อเข้าถึงตัวเลือกการพับโค้ดที่เกี่ยวข้องทั้งหมดและทางลัด


1
สิ่งนี้มีประโยชน์เป็นพิเศษหากคุณใช้ keymap อื่น (เช่น emap keymap)
Magnilex

น่าเสียดายที่ทางลัด "จังหวะที่สอง" ไม่แสดงทางลัดในเมนูอย่างถูกต้อง ดูคำตอบของ overthink
พลวง

7

คำตอบของ @ precastic ข้างต้นคือ imo ความคิดที่ถูกต้อง

น่าสังเกตว่าใน IDEA 2018.2 (และรุ่นอื่น ๆ ที่ใกล้เคียง) มีแป้นพิมพ์ลัดเริ่มต้นสำหรับสิ่งนี้: (แสดง Mac, ดูรหัส> การพับ> ขยายทั้งหมดถึงระดับสำหรับระบบของคุณ):

Cmd+ Option+ Keypad *, 1- ขยายทั้งหมดไปยังระดับ 1
Cmd+ Option+ Keypad *, 2- ขยายทั้งหมดไปยังระดับ 2
...
Cmd+ Option+ Keypad *, 5- ขยายทั้งหมดถึงระดับ 5

หมายเหตุ:นี่คือทางลัด "จังหวะที่สอง" กดแรกCmd+ Option+ *แล้วปล่อยจากนั้นกดหมายเลขที่คุณต้องการ


1
สำหรับทุกคนที่ไม่ใช่ mac CmdคือCtrlและOptionเป็นShift
desertSniper87

เป็นการดีที่จะรู้เกี่ยวกับทางลัดจังหวะที่สอง
Varun Sharma

2

คุณสามารถไปที่การตั้งค่า> ตัวแก้ไข> ทั่วไป> การพับโค้ดและเลือก "แสดงโครงร่างการพับโค้ด"


1

ในไรเดอร์นี้จะเป็นCtrl+ Shift+ Keypad *,2

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


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