วิธีเปิดใช้งานรหัสรูปแบบอัตโนมัติสำหรับ Intellij IDEA


130

เป็นไปได้ไหมใน Intellij IDEA หลังจากพิมพ์ ';' หรือกด 'Enter' เกิดการจัดรูปแบบของสตริงนี้หรือไม่

ตัวอย่างเช่นเพื่อ:

a+b=10;

หลังจาก:

a + b = 10;

หรือทางเลือกเดียวที่เป็นไปได้: รหัส> จัดรูปแบบรหัส ... ?

ขอบคุณ!


1
Alt+ c+r
Gayan Weerakutti

หากคุณต้องการให้ฟีเจอร์นี้รวมอยู่ใน IntelliJ (ไม่อยู่ในปลั๊กอินใด ๆ ) โปรดลงคะแนนที่นี่: youtrack.jetbrains.net/issue/IDEABKL-5806
บรรทัด

คำตอบ:


182

ทางลัดการจัดรูปแบบใน Intellij IDEA ได้แก่ :

  • สำหรับ Windows: Ctrl+ Alt+L
  • สำหรับ Ubuntu: Ctrl+ Alt+ Windows+ L
  • สำหรับ Mac: ⌥ (Option)+ ⌘ (Command)+L

90
ใช่ แต่ฉันต้องการให้สิ่งนี้เกิดขึ้นโดยอัตโนมัติโดยไม่ต้องกดปุ่มลัดใด ๆ
0x131313

มาโคร? ctrl + alt + l กลายเป็น ctrl + alt + l + enter
Jeff

18
คำถามจะระบุ "รูปแบบอัตโนมัติ" อย่างชัดแจ้งหลังจากเขียนแต่ละบรรทัด
bokan

2
@axelrod มีวิธีดำเนินการโดยอัตโนมัติเมื่อบันทึกหรือรวบรวมรหัส
Kasun Siyambalapitiya

3
นั่นไม่ตอบคำถาม คำตอบของ Nafiur Rahman Khadem ทำ
Dakatine

22

ฉันพบสองวิธีในการทำสิ่งนี้:

  1. ไปที่Settings> Keymap.ในส่วนด้านขวาไปที่Editor Actions> complete current statement.คลิกแล้วเลือกเพิ่มแป้นพิมพ์ลัด กด; แล้วเลือกตกลง

  2. ใช้มาโคร ไปที่

Edit> Macros> Start Macro Recording.

ตอนนี้กดอัฒภาคและแป้นพิมพ์ลัดเพื่อจัดรูปแบบรหัส (คุณสามารถค้นหาแป้นพิมพ์ลัดจากคำตอบอื่น ๆ หรือจากการตั้งค่า> แป้นพิมพ์)

หลังจากทำการฟอร์แมตไปที่

Edit> Macros> Stop Macro Recording

บันทึกมาโครด้วยชื่อ (รูปแบบอัตโนมัติหรืออย่างอื่น) จากนั้นไปที่

Settings> Keymap> Macros> auto format (ชื่อมาโคร)

คลิกที่นั่นแล้วเลือกเพิ่มแป้นพิมพ์ลัดจากนั้นกดอัฒภาคแล้วคลิกตกลง เมื่อใดก็ตามที่คุณกดอัฒภาคมันจะเขียนอัฒภาคและทำรูปแบบอัตโนมัติ


ดี ฉันยังเพิ่มShift+[โดยใช้วิธีแรกในการจัดรูปแบบบรรทัดเมื่อเขียนifคำสั่งและวิธีการและอื่น ๆ ด้วยเหตุผลบางอย่างEnterดูเหมือนจะไม่ได้ผล
Matt

1
สิ่งนี้มีประโยชน์มากเป็นเรื่องแปลกที่ Intellij ไม่มีตัวเลือกการฟอร์แมตอัตโนมัติเลย
Teedeez

12

Eclipse มีตัวเลือกในการจัดรูปแบบโดยอัตโนมัติเมื่อบันทึกไฟล์ ไม่มีตัวเลือกสำหรับสิ่งนี้ใน IntelliJ แม้ว่าคุณจะสามารถกำหนดค่ามาโครสำหรับปุ่ม Ctrl + S (Cmd + S บน Mac) เพื่อจัดรูปแบบโค้ดและบันทึกได้

Intellij ฟอร์แมตใหม่ในการบันทึกไฟล์


7

ค่าเริ่มต้นคือCtrl+ Alt+ L มีกล่องโต้ตอบการแมปคีย์ที่คุณสามารถกำหนดค่า / เขียนทับแป้นพิมพ์ลัดทั้งหมดได้

นำทาง File-> Settings-> KeyMap

ใส่คำอธิบายภาพที่นี่


7

File-> Settings -> Keymap-> Complete Current Statement

ฉันเพิ่ม;คีย์ในนั้น เมื่อพิมพ์ ';' ในตอนท้ายของบรรทัดเป็นการจัดรูปแบบอัตโนมัติ

UPDATE

ฉันตระหนักว่าสิ่งนี้จะทำให้เกิดปัญหาบางอย่างในบางสถานการณ์ ใช้Ctrlเครื่องหมายShift+ Enterแทน สามารถใช้คีย์นี้ในตำแหน่งใดก็ได้ของเคอร์เซอร์ในบรรทัด มันจะเพิ่ม;ที่ส่วนท้ายของบรรทัด นอกจากนี้ทางลัดนี้ยังมีคุณสมบัติที่มีประโยชน์อื่น ๆ

ชอบ:

public void someMethod()

หลังจากทางลัด:

public void someMethod() {
    // The cursor is here
}

ดังนั้นจึง;ไม่จำเป็นต้องจัดรูปแบบในการแทรก


ฉลาด แต่ไม่ใช่สำหรับ Kotlin
jobbert

6

สามารถทำได้โดย Ctrl + WindowsBtn + Alt + L สิ่งนี้จะมีความสำคัญสำหรับบางคนเพราะใน Virtual Machines บางเครื่อง Ctrl + Alt + L สามารถล็อกเอาต์คุณได้



3

ไม่มีโซลูชันใดใน Intellij ที่สง่างาม (หรือมีประโยชน์) เท่าใน Eclipse สิ่งที่เราต้องการคือการร้องขอคุณลักษณะไปยัง intellij เพื่อให้เราสามารถเพิ่ม hook (สิ่งที่ต้องดำเนินการ) เมื่อ IDE บันทึกอัตโนมัติ

ใน Eclipse เราสามารถเพิ่มการดำเนินการ "หลังบันทึก" เช่นจัดระเบียบการนำเข้าและจัดรูปแบบคลาส ใช่คุณต้อง "บันทึก" หรือ ctrl-s แต่ขอเกี่ยวสะดวกมาก


1
มีการติดต่อไปยัง intellij เกี่ยวกับ htis หรือไม่? ถ้ามีกรุณาโพสต์ลิงค์ที่นี่ :)
Ruthi Ruth

@RuthiRuth เจอแล้ว;) youtrack.jetbrains.net/issue/IDEABKL-5806
Line

3

หากต้องการคุณสามารถใช้ปลั๊กอินsaveActions คุณสามารถฟอร์แมตไฟล์ปรับแต่งการนำเข้าและอื่น ๆ อีกมากมายมันปรับแต่งได้และติดตั้งง่ายมาก




1

นั่นเป็นไปไม่ได้ แต่ใน intellij 13 จะเพิ่มท่าทางของเมาส์ได้อย่างไรเช่นการคลิกเมาส์ซ้ายเพียงครั้งเดียวเพื่อฟอร์แมตโค้ด หรือถ้าคุณไม่ได้ใช้เมาส์มากนักให้เพิ่มปุ่มลัดที่เรียบง่ายที่คุณใช้ตลอดเวลา (อาจเป็น "enter" หรือไม่ไม่แน่ใจว่า intellij จะพอใจกับสิ่งนั้นหรือไม่)


2
ทำไมต้องโหวตลง? ฉันกำลังบอกว่าสิ่งที่คุณต้องการเป็นไปไม่ได้และพยายามจัดหาสิ่งที่ใกล้เคียงที่สุด ..
sakis kaliakoudas

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

1

วิธีที่ฉันใช้การจัดรูปแบบอัตโนมัติเช่นใน Microsoft Visual Studio (มันใช้งานไม่ได้สมบูรณ์แบบ):

1. Edit > Macros > Start Macro Recording
2. Press continuously: Enter + Ctrl+Alt+I
3. Edit > Macros > Stop Macro Recording (Name it for example ReformatingByEnter)

ตอนนี้เราต้องดำเนินการเดียวกัน แต่สำหรับ Ctrl + Alt + L +;

4. Edit > Macros > Start Macro Recording
5. Press continuously: ; + Ctrl+Alt+I
6. Edit > Macros > Stop Macro Recording (Name it for example ReformatingBy;)

ตอนนี้เราต้องกำหนด HotKeys ให้กับมาโครเหล่านี้:

7. File > Settings > Keymap > press on a gear button > Duplicate...
8. Unfold a macro button (beneath) and by right clicking on two 
ours macros assign HotKeys for them: "Enter" and ";" correspondingly.

แป้นพิมพ์อาจเป็นข้อ จำกัด แต่ดูเหมือนว่าฉันจะบันทึกได้ครั้งละ 3 ปุ่มเท่านั้น
Matt

1

ฉันรู้ว่าคำถามนี้ค่อนข้างเก่า แต่จริงๆแล้วมีปลั๊กอินSave Actionsสำหรับ IntelliJ ที่สามารถกำหนดค่าให้จัดรูปแบบโค้ดโดยอัตโนมัติ


1

คุณสามารถทำได้ด้วยปลั๊กอินบันทึกการดำเนินการ อ้างอิงบทความนี้เกี่ยวกับวิธีกำหนดค่าปลั๊กอิน

ปลั๊กอิน Save Actions รองรับการกำหนดค่า Eclipse เช่นบันทึกการดำเนินการรวมถึง "เพิ่มประสิทธิภาพการนำเข้า" "รหัสฟอร์แมต" "จัดเรียงโค้ดใหม่" "ไฟล์คอมไพล์" และการแก้ไขด่วนสำหรับ Java เช่น "add / remove 'this' qualifier" เป็นต้น ปลั๊กอินเรียกใช้การดำเนินการที่กำหนดค่าไว้เมื่อไฟล์ถูกซิงโครไนซ์ (หรือบันทึก) บนดิสก์

  1. ติดตั้งปลั๊กอิน
  2. ไปที่การตั้งค่า > การตั้งค่าอื่น ๆ > บันทึกการดำเนินการ
  3. ติ๊กเปิดใช้งานบันทึกการดำเนินการเมื่อบันทึก
  4. ติ๊กฟอร์แมตไฟล์
  5. ใช้> ตกลง

ใส่คำอธิบายภาพที่นี่

ฉันชอบปุ่มลัดมากกว่าสำหรับ Mac

ในการจัดรูปแบบรหัส: Ctrl+ Alt(Option)+L

และนอกจากนี้ฉันทำ: Ctrl+ Alt(Option)+ O ซึ่งจะลบการนำเข้าที่ไม่ได้ใช้และจัดรูปแบบรายการนำเข้าด้วย

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