เยื้องอัตโนมัติใน Notepad ++


187

เรามักจะเขียนโค้ดแบบนี้:

void main(){
  if(){
    if()
    }

ข้อความแทน

แต่เมื่อฉันใช้Notepad ++จอแสดงผลคือ:

void main(){
if(){
if()
}

ข้อความแทน

ฉันจะใช้ Notepad ++ เพื่อเยื้องอัตโนมัติได้อย่างไร

ขอบคุณโจนาธานฉันได้ตั้งค่าแล้ว แต่มันไม่มีผลอะไรเลย ภาพรวมอยู่ด้านล่าง:

ข้อความแทน

ฉันใช้ Notepad ++ เวอร์ชัน 5.1.3

คำตอบ:


135

Notepad ++ จะแทรกการเยื้องในภายหลังโดยอัตโนมัติหากคุณเยื้องบรรทัดแรกในบล็อกด้วยตนเอง มิฉะนั้นคุณจะ TextFX > TextFX Edit > Reindent C++ codere-เยื้องรหัสของคุณหลังจากที่ความจริงการใช้


1
หากรุ่นของคุณไม่มี DLL คุณสามารถรับได้จากเวอร์ชัน ZIP 5.9.0 บางรุ่นที่ใหม่กว่าไม่รวม DLL นี้ notepad-plus-plus.org/download/v5.9.0.html
Fostah

2
ฉันพบสิ่งนี้จริง ๆ ในขณะที่กำลังมองหาวิธีจัดรูปแบบโค้ดจาวาสคริปต์ กลับกลายเป็นว่าทำงานได้กับไฟล์. js เช่นกัน!
sacredfaith

7
@Fostah: คุณยังสามารถติดตั้ง "Text FX Character" ผ่านทาง> ปลั๊กอิน> โปรแกรมจัดการปลั๊กอิน> แสดงโปรแกรมจัดการปลั๊กอิน
Adrien ได้

@scronide มีคีย์ลัดสำหรับสิ่งนี้หรือไม่
Pacerier

โปรดทราบว่าแม้จะมีชื่อ แต่ก็มีการย่อหน้ารหัส javascript ที่ฉันพยายามแก้ไขการเยื้อง เหตุผลที่ผมจะคาดหวังว่ามันจะไม่เพียงแค่การกล่าวขวัญตั้งแต่ชื่อไม่เป็นที่เฉพาะเจาะจงมากกว่า Dunno เหตุใดผู้แต่งห้องสมุดรู้สึกว่าเขาต้องให้ความสนใจเป็นพิเศษกับ C ++ ... : D
neminem

99

หากเมนู TextFX ไม่มีอยู่คุณต้องดาวน์โหลดและติดตั้งปลั๊กอิน Plugins-> ปลั๊กอิน Manager-> แสดงผู้จัดการปลั๊กอินแล้วตรวจสอบปลั๊กอินตัวละคร TextFX คลิก 'ติดตั้ง' รีสตาร์ท Notepad ++

ในรุ่น Notepad ++ v6.1.3 ฉันแก้ไขด้วย: Plugin Manager-> แสดงตัวจัดการปลั๊กอิน ** จากนั้นตรวจสอบปลั๊กอิน "เยื้องโดยพับ"


2
เยื้องด้วยการพับนั้นยอดเยี่ยม ความจริงที่ว่ามันทำงานในการจัดรูปแบบตามอำเภอใจ ( XML, C / ++ / #, ฯลฯ ) นั้นยอดเยี่ยม ปัญหาเดียวกับมันคือ "เลิกทำ" กองซ้อน เมื่อใช้หากคุณต้องการเลิกทำจุดก่อนหน้าเมื่อคุณเยื้องคุณต้องเลิกทำการเยื้องบรรทัดใหม่ทุกบรรทัดเนื่องจากไม่ได้เพิ่มไปยังสแต็กเป็นคำสั่งเดียว โดยทั่วไปควรระวังเมื่อทำงานกับไฟล์ที่มีความยาว
Dan Lugg

สวัสดี @Dan ปัญหาการเลิกทำดูเหมือนจะได้รับการแก้ไขในเวอร์ชันใหม่ของการเยื้องโดยพับ ...
538ROMEO

1
ใช่มันไม่มีอยู่และไม่มีตัวจัดการปลั๊กอิน
Beyondo

31

ดูเหมือนจะมีตัวเลือกสำหรับรูปแบบอัตโนมัติของ XML อย่างน้อยที่สุด TextFX -> TextFX HTML Tidy -> Tidy: reindent XMLมันสามารถพบได้ที่


2
คุณต้องใช้ปลั๊กอิน TextFx สำหรับสิ่งนี้
2559

29

นักพัฒนาโปรแกรมแก้ไขข้อความส่วนใหญ่ใช้ชื่อนี้ในทางที่ผิด (เยื้องอัตโนมัติ) ชื่อที่ถูกต้องคือ "รักษาการเยื้อง" การเยื้องอัตโนมัติคือสิ่งที่คุณต้องการ แต่ไม่ได้นำมาใช้

ฉันต้องการจะดูคุณสมบัตินี้ใน Notepad ++


22

ในเวอร์ชันล่าสุด (อย่างน้อย) คุณสามารถค้นหาได้ผ่าน:

  • การตั้งค่า (เมนู)
  • การตั้งค่า ...
  • MISC (แท็บ)
  • รายการช่องทำเครื่องหมายซ้ายล่าง
  • " เยื้องอัตโนมัติ " เป็นตัวเลือกที่ 2 ในกลุ่มนี้

[ แก้ไข ] แม้ว่าฉันไม่คิดว่ามันจะมีการใช้งานการเยื้องอัตโนมัติที่ดีที่สุด ดังนั้นตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชัน 5.1 - การเยื้องอัตโนมัติได้รับการยกเครื่องเมื่อเร็ว ๆ นี้ดังนั้นจึงเป็นการแก้ไขการเยื้องของคุณโดยอัตโนมัติ


โปรดทราบด้วยว่าคุณไม่มีบล็อคในช่วงที่สองif:

void main(){
  if(){
    if() { }  # here
  }
}

8
โปรดสังเกตว่าการตั้งค่าการเยื้องอัตโนมัติใน Notepad ++ นี้จะถือว่าคุณทำการเยื้องครั้งแรกในบล็อกด้วยตนเอง มันไม่ฟอร์แมตโค้ดให้คุณโดยอัตโนมัติ
scronide

ผมได้ความหมายของคุณเพียงแค่ตอนนี้โปรดยกโทษให้เอ็งไม่ดีของฉัน ... ภาษาแม่ของฉันคือจีน ...
Turion

14

คุณสามารถใช้ปลั๊กอิน 'เยื้องทีละเท่า' ติดตั้งจากตัวจัดการปลั๊กอิน มันใช้งานได้ดีสำหรับฉัน


2
เยื้องโดยการพับเป็นสิ่งที่ดียกเว้นว่ามันจะเยื้องไปโดยการพับเท่านั้น) ในสถานการณ์ที่คุณเยื้องการเริ่มต้นรายการยกเว้นภาษาที่ใช้ตัวอักษรการพับเพื่อกำหนดขอบเขตการเริ่มต้นมันจะสิ้นสุดการเยื้อง ตัวอย่างคือการเริ่มต้นอาร์เรย์หลายบรรทัดใน PHP โดยใช้array( ... )ซึ่ง()ไม่สามารถพับได้
Dan Lugg

5

ในเวอร์ชัน 6.6.8 ฉันติดตั้งปลั๊กอิน NppAutoIndent จากปลั๊กอิน> ตัวจัดการปลั๊กอิน> แสดงตัวจัดการปลั๊กอิน จากนั้นฉันเลือกตัวเลือก Smart Indent ในปลั๊กอิน> NppAutoIndent หวังว่านี่จะช่วยได้


4

การปรับปรุงเล็ก ๆ น้อย ๆ : คุณสามารถข้ามปลั๊กอิน TextFX และใช้เพียงTidy2 ที่นี่คุณสามารถกำหนดค่า formating-rules ของคุณเองสำหรับรหัสประเภทต่างๆ ง่ายต่อการติดตั้งและลบภายใน

Notepad ++> ปลั๊กอิน> เครื่องมือจัดการปลั๊กอิน> แสดงเครื่องมือจัดการปลั๊กอิน

และเพียงแค่ค้นหาTidy2และติดตั้ง เสร็จสิ้น


คุณช่วยอธิบายอีกเล็กน้อยได้ไหม?
Dieter Meemken

ข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าสามารถดูได้ที่นี่: stackoverflow.com/questions/14865770/using-tydy2-for-notepad
Sven Ya

มันค่อนข้างยากที่จะใช้สิ่งนี้เปรียบเทียบกับปลั๊กอินอื่น ๆ
Gaurav khurana

4

สำหรับผู้ที่ใช้ Notepad ++ v6.8.1 และใหม่กว่าการตั้งค่าการเยื้องอัตโนมัติตอนนี้จะถูกวางไว้ในเมนูการตั้งค่าค่ากำหนดMISC → เยื้องอัตโนมัติ

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


3

ลองใช้ปลั๊กอินUniversalIndentGUIสำหรับ Notepad ++ มันเยื้องรหัสตามพารามิเตอร์บางอย่าง มันทำงานได้ดีสำหรับฉัน


3
โปรดทราบว่าลิงก์นั้นตรงไปยังการดาวน์โหลด เว็บไซต์ที่เป็น: universalindent.sourceforge.net นอกจากนี้สิ่งนี้ดูเหมือนจะเป็น GUI สำหรับการกำหนดค่าเครื่องมือการปฏิรูปแทนที่จะจัดรูปแบบข้อความอย่างถูกต้องโดยอัตโนมัติเพื่อเริ่มต้นด้วย
Martin Bonner สนับสนุนโมนิก้า

2

สิ่งนี้อาจดูไร้สาระ แต่ในคำถามเดิม Turion แก้ไขไฟล์ข้อความธรรมดา ตรวจสอบให้แน่ใจว่าคุณเลือกภาษาที่ถูกต้องจากเมนูภาษา


2
Menu TextFX → TextFX Edit → Reindent C++ code

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

แต่ Notepad ++ ไม่ได้มาพร้อมกับปลั๊กอิน "Text FX Character" นี้ คุณจะต้องติดตั้งผ่าน

Plugins → Plugin Manager → Show Plugin Manager.

เพื่อเพิ่มทางลัดสำหรับการเยื้อง

คลิกที่การตั้งค่า →ผู้ทำแผนที่ทางลัด ...ตั้งค่าคีย์ลัดที่คุณต้องการ ฉันชอบ+Ctrl=

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



1

ขั้นแรกให้ดาวน์โหลดตัวจัดการปลั๊กอินลิงก์นี้จากนั้นคลายซิปไฟล์ zip และคัดลอกไฟล์นี้ไว้ในโฟลเดอร์โปรแกรม / notepad ++ ของคุณ จากนั้นเริ่ม notepad ++ ของคุณใหม่ จากนั้นคุณเห็นตัวจัดการปลั๊กอินภายในเมนูปลั๊กอิน จากนั้นคลิกตัวจัดการปลั๊กอินจากนั้นคลิกแสดงตัวจัดการปลั๊กอิน มันจะแสดงรายการปลั๊กอินทั้งหมดของคุณ จากรายการด้านล่างพบเครื่องมือ XML ตรวจสอบและติดตั้ง จากนั้นเริ่ม notepad ++ ของคุณใหม่ หลังจากเปิดเอกสารแล้วปลั๊กอิน / เครื่องมือ xml / สวยธรรมดา (เยื้องข้อความ) แล้วเพลิดเพลิน


0

สำหรับผู้ที่ใช้เวอร์ชั่น 7.8.5 ตอนนี้การตั้งค่าการเยื้องอัตโนมัติจะอยู่ที่ "การตั้งค่า" -> "การตั้งค่า ... " -> "การทำให้สมบูรณ์อัตโนมัติ"

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


0

ลองบันทึกไฟล์ก่อนจากนั้นจะเยื้อง


มันอาจเป็นความคิดเห็น!
Farbod Ahmadian

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