ฉันจะฟอร์แมตโค้ด HTML ใหม่โดยใช้ Sublime Text 2 ได้อย่างไร


1313

ฉันได้รับโค้ด HTML ที่มีรูปแบบไม่ดีที่ฉันต้องการจัดรูปแบบใหม่ มีคำสั่งที่จะฟอร์แมตโค้ด HTML ใหม่ใน Sublime Text 2 โดยอัตโนมัติหรือไม่ดังนั้นจึงดูดีขึ้นและอ่านง่ายขึ้น?



1
นอกจากนี้หากคุณใช้โหมดวินเทจคุณสามารถใช้ gg = G ในโหมดปกติ
Wiktor Mociun

3
คุณสามารถเสียเวลาอ่านทั้งหน้านี้หรือคุณสามารถรับgithub.com/akalongman/sublimetext-codeformatterและกลับมาทำงานได้
shaneparsons

คำตอบ:


2080

คุณไม่ต้องการปลั๊กอินใด ๆ ในการทำเช่นนี้ เพียงเลือกทุกบรรทัด ( Ctrl A) จากนั้นเลือกเมนูแก้ไข→บรรทัด→ป้อนสารบัญใหม่ นี้จะทำงานหากไฟล์ของคุณจะถูกบันทึกไว้ที่มีนามสกุลที่มี HTML เหมือนหรือ.html.php

หากคุณทำสิ่งนี้บ่อยครั้งคุณอาจพบว่าการจับคู่คีย์นี้มีประโยชน์:

{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false } }

หากไฟล์ของคุณไม่ได้รับการบันทึก (เช่นคุณเพิ่งวางตัวอย่างในหน้าต่างใหม่) คุณสามารถตั้งค่าภาษาสำหรับการเยื้องด้วยตนเองโดยเลือกเมนูมุมมอง→ไวยากรณ์→ language of choiceก่อนเลือกตัวเลือก reindent


19
อย่างไรก็ตามวิธีนี้ใช้ได้กับซอร์สโค้ดที่ไม่ใช่ HTML เช่นเช่น Ruby หรือ JS
peter

78
วิธีนี้ใช้งานได้ดีหากรหัสไม่มีแท็กหลายแท็กที่เปิดในหนึ่งบรรทัดซึ่งยังไม่ปิดในหนึ่งบรรทัดหรือในทางกลับกัน
Charlie Gorichanaz

31
ที่สมบูรณ์แบบ! สำหรับ mac คุณต้องใช้ super สำหรับปุ่ม cmd ดังนั้น: {"keys": ["super + shift + r"], "คำสั่ง": "reindent", "args": {"single_line": false}}
Geert กำลังจะลดลง

168
line reindent ไม่สามารถใช้ฟอร์แมต HTML ได้ตามต้องการ เช่นเมื่อมีแท็ก html หลายรายการโดยไม่มีตัวแบ่งบรรทัด คำตอบ HtmlTidy จาก @anneke นั้นเหนือกว่า เท่าที่ฉันสามารถบอกได้โดยไม่คำนึงถึงการแบ่งบรรทัดมันจะทำการฟอร์แมต html ต้นฉบับใหม่อย่างสมบูรณ์และเหมาะสม
jpw

33
สำหรับมือใหม่ให้คลิก "การตั้งค่า" จากนั้นเลือก "การผูกกุญแจ - ผู้ใช้" และวางรหัสของปีเตอร์ระหว่างวงเล็บเหลี่ยมและบันทึกไฟล์
sigmapi13

375

มีวิธีครึ่งโหลหรือมากกว่านั้นในการจัดรูปแบบ HTML ใน Sublime ฉันได้ทดสอบปลั๊กอินยอดนิยมแต่ละตัว (ดูรายละเอียดทั้งหมดที่ฉันทำในบล็อกของฉัน ) แต่นี่เป็นภาพรวมโดยย่อของตัวเลือกยอดนิยมบางส่วน:

คำสั่ง reindent

ข้อดี:

  • จัดส่งพร้อม Sublime ดังนั้นไม่จำเป็นต้องติดตั้งปลั๊กอิน

จุดด้อย:

  • ไม่ลบบรรทัดว่างพิเศษ
  • ไม่สามารถจัดการ HTML ที่ย่อขนาดได้บรรทัดที่มีแท็กเปิดหลายรายการ
  • จัดรูปแบบ<script>บล็อกไม่ถูกต้อง

แท็ก

ข้อดี:

  • รองรับ ST2 / ST3
  • ลบบรรทัดว่างพิเศษ
  • ไม่มีการอ้างอิงแบบไบนารี

จุดด้อย:

  • Chokes บนแท็ก PHP
  • จัดการกับ<script>บล็อกไม่ถูกต้อง

HTMLTidy

ข้อดี:

  • จัดการแท็ก PHP
  • การตั้งค่าบางอย่างเพื่อปรับแต่งการจัดรูปแบบ

จุดด้อย:

  • ต้องการ PHP (กลับไปใช้บริการเว็บ)
  • ลำดับที่ 2 เท่านั้น
  • ที่ถูกทิ้งร้าง?

HTMLBeautify

ข้อดี:

  • รองรับ ST2 / ST3
  • ง่ายและไม่มีการพึ่งพา binaray
  • รองรับ OS X, Win และ Linux

จุดด้อย:

  • ฉายาเล็กน้อยด้วยความคิดเห็นแบบอินไลน์
  • ขยายย่อ / บีบอัดย่อเล็กสุด

HTML-CSS-JS Prettify

ข้อดี:

  • รองรับ ST2 / ST3
  • จัดการ HTML, CSS, JS
  • การผสานที่ยอดเยี่ยมกับเมนูของ Sublime
  • ปรับแต่งได้สูง
  • การตั้งค่าต่อโครงการ
  • รูปแบบตัวเลือกการบันทึก

จุดด้อย:

  • ต้องการ Node.js
  • ไม่ดีสำหรับ PHP แบบฝัง

ไหนดีที่สุด

HTML-CSS-JS Prettify เป็นผู้ชนะในหนังสือของฉัน คุณสมบัติที่ยอดเยี่ยมมากมายไม่ต้องบ่นอะไรมากมาย


12
2nd บน Prettify การเยื้องใหม่ไม่ทำงานบน html ที่ฉันมีไม่พบแท็กและ HtmlTidy ไม่ได้ทำอะไรเลยเมื่อฉันเรียกมันว่า
jcollum

2
เพิ่งลองและ HTML-CSS-JS Prettify ทำงานในกรณีการใช้งานของฉันได้อย่างดีเยี่ยม (จัดการทำความสะอาด html ได้ดีกว่าแพ็คเกจ reindent หรือรีฟอร์แมตอื่น ๆ )
Mark Essel

2
พยายามคนอื่นทั้งหมด แต่คนเดียวที่ทำงาน (สำหรับตัวอย่างของ HTML) คือ HTML-CSS-JS Prettify ขอบคุณ!
zumek

1
นอกจากนี้ยังต้องการพูดถึงว่าคุณสามารถลบการเยื้องทั้งหมด (เช่นมาร์กอัปเมื่อมีการแก้ไข) เช่นโดยใช้ฟังก์ชันในตัวของ ST - เลือกบล็อกและกด ctrl + j
zumek

1
สิ่งนี้ใช้ได้กับส่วนขยายที่ไม่ใช่ html หรือไม่ ฉันลองใช้ php และเทมเพลตอื่นมันใช้งานไม่ได้
Bsienn

179

แพคเกจเดียวที่ฉันได้รับสามารถที่จะพบคือแท็ก

คุณสามารถติดตั้งได้โดยใช้การควบคุมแพ็คเกจ https://sublime.wbond.net

หลังจากติดตั้งชุดควบคุม ไปที่แพคเกจการควบคุม ( Preferences -> แพคเกจควบคุม ) จากนั้นพิมพ์ตีinstall enterจากนั้นพิมพ์และการตีtagenter

หลังจากติดตั้งแท็กเน้นข้อความและกดลัดCtrl+ +AltF


21
ปลั๊กอินที่ดีกว่าคือ Tidy HTML
MatthewFord

1
ขอบคุณ ... เพิ่งรู้ตอนนี้เกี่ยวกับแพ็คเกจ: D เห็นสิ่งดีๆสำหรับข้อความประเสริฐที่นี่เช่นกัน arlando.net/blog/…
mars-o

3
นี่เป็นสิ่งเดียวที่ทำงานได้อย่างสมบูรณ์กับโค้ด HTML ที่มีการแบ่งบรรทัดแบบสุ่มหลายร้อยแท็กที่ซ้อนกันไม่ถูกต้อง มันทำความสะอาดหนึ่งในหน้า HTML ที่ยุ่งที่สุดที่ฉันเคยเห็น!
justinhartman

1
ฉันไม่เห็นด้วยกับ @ mars-o; ปลั๊กอินนี้ดีมาก เป็นระเบียบเรียบร้อยทำบางสิ่งได้ดีมากและเป็นที่ยอมรับมาก แต่ปลั๊กอินนี้ทำสิ่งที่น่าสนใจอื่น ๆ อีกเล็กน้อย ขอบคุณสำหรับการโพสต์
zedd45

@ JonnyLeeds มันเป็นแบบที่ทำ แต่ไม่ถูกต้องเสมอไป สำหรับ XML โดยเฉพาะลองIndent XMLหรือIndentXหมู่อื่น ๆ
Joel Mellon

49

ฉันแนะนำปลั๊กอินนี้: HTML / CSS / JS Prettify ใช้งานได้จริง

Ctrl+Shift+Hหลังจากการติดตั้งเพียงแค่เลือกรหัสและกด

ทำ!


3
คุณต้องใช้ Node.js ในการใช้ปลั๊กอินดังกล่าว ไม่สะดวกสำหรับผู้ใช้ทั่วไป
nikoskip

4
เมื่อเปรียบเทียบกับประโยชน์ของปลั๊กอินนี้เราสามารถเพิกเฉยต่อปัญหาในการติดตั้ง Node.js;)
Peter Zhu

คำแนะนำในการติดตั้งpackagecontrol.io/packages/HTML-CSS-JS%20Prettify ใช้งานได้ดี ขอบคุณ
Sacky San

41

เพียงแค่เคล็ดลับทั่วไป สิ่งที่ฉันทำเพื่อทำให้เป็นระเบียบเรียบร้อยขึ้น HTML ของฉันคือการติดตั้งแพคเกจ HTML_Tidy จากนั้นเพิ่มการเชื่อมโยงปุ่มกดต่อไปนี้เป็นการตั้งค่าเริ่มต้น (ซึ่งฉันใช้):

{ "keys": ["enter"], "command": "html_tidy" },

การดำเนินการนี้จะเป็นระเบียบเรียบร้อย HTML เมื่อป้อนทุกครั้ง อาจมีข้อเสียคือฉันค่อนข้างใหม่สำหรับ Sublime แต่ดูเหมือนว่าจะทำสิ่งที่ฉันต้องการ :)


2
ฉันคิดว่าปลั๊กอินนี้อาจกลายเป็นไฟล์ที่มีขนาดใหญ่เล็กน้อยซึ่งอาจช้าลงถ้ามันทำงานทุกครั้งที่คุณกดปุ่ม?
Rikki

2
ฉันใช้ปุ่มลัดป้อนประมาณหนึ่งวันแล้วลบออก ช้าเกินไปและนำเคอร์เซอร์ไปไว้ด้านบนของหน้าจอใน v2 ต่อไป
Ravi Ram

22

คำถามมีไว้สำหรับ HTML ฉันยังต้องการให้ข้อมูลเกี่ยวกับวิธีจัดรูปแบบโค้ด Javascript ของคุณโดยอัตโนมัติสำหรับ Sublime Text 2 ;

คุณสามารถเลือกรหัสทั้งหมดของคุณ ( ctrl+ A) และใช้ฟังก์ชั่นในแอพพลิเคชั่น, ใส่ใหม่ ( Edit-> Line-> Reindent) หรือคุณสามารถใช้ปลั๊กอินการจัดรูปแบบ JsFormat สำหรับSublime Text 2หากคุณต้องการตั้งค่าที่กำหนดเองเพิ่มเติมเกี่ยวกับวิธีการจัดรูปแบบรหัสของคุณ แท็บเริ่มต้นของ Sublime Text / การตั้งค่าเยื้อง

https://github.com/jdc0589/JsFormat

คุณสามารถติดตั้งJsFormatกับการใช้แพคเกจการควบคุม ( Preferences-> Package Control) ควบคุมแพคเกจเปิดแล้วพิมพ์ติดตั้งตี enterจากนั้นพิมพ์js formatและกดenterคุณเสร็จแล้ว (คอนโทรลเลอร์แพ็กเกจจะแสดงสถานะของการติดตั้งพร้อมความสำเร็จและข้อผิดพลาดที่แถบด้านล่างซ้ายของSublime)

เพิ่มบรรทัดต่อไปนี้ในการผูกคีย์ของคุณ ( Preferences-> Key Bindings User)

{ "keys": ["ctrl+alt+2"], "command": "js_format"}

ฉันใช้ctrl+ alt+ 2คุณสามารถเปลี่ยนปุ่มทางลัดนี้ตามที่คุณต้องการ จนถึงตอนJsFormatนี้เป็นปลั๊กอินที่ดีคุ้มค่าที่จะลอง!

หวังว่านี่จะช่วยใครซักคน



13

สำหรับฉันHTML Prettifyทางออกนั้นง่ายมาก ฉันไปที่หน้า HTML เสริมสวย

  1. จำเป็นต้องใช้ Sublime Package Manager
  2. ทำตามคำแนะนำสำหรับการติดตั้งตัวจัดการแพคเกจที่นี่
  3. พิมพ์cmd + shift + pเพื่อเรียกเมนูขึ้นมา
  4. พิมพ์ prettify
  5. เลือกส่วนที่HTML prettifyเลือกในเมนู

ความเจริญ เสร็จสิ้น ดูดี


วิธีนี้ใช้ได้ผลอย่างที่ฉันต้องการและใช้เวลาทั้งหมด 2 วินาทีถ้าคุณติดตั้ง PM ไว้แล้ว อาจต้องการเพิ่มที่คุณต้องการติดตั้งแพ็คเกจ prettify
doogle

หมายเหตุ: สำหรับผู้ที่สนใจปลั๊กอินในคำตอบนี้ต้องติดตั้ง node.js
ชื่อปลอม

ทำงานไม่ถูกต้อง เพียงเยื้อง / แบ่งบรรทัด HTML ถึงระดับของการเยื้องและออกจากส่วนที่เหลือไม่เยื้องและในบรรทัดเดียวกัน
Jonathan

11

เพียงไปที่

แก้ไข -> แท็ก -> แท็กรูปแบบอัตโนมัติในเอกสาร


6
ฉันไม่เห็นตัวเลือกเมนูนั้นในSublime Text 2 Version 2.0.1, Build 2217บน Mac คุณแน่ใจหรือว่ามันเป็นคุณสมบัติมาตรฐาน
ostergaard

1
คุณต้องติดตั้ง Tag จาก Package Manager แต่ฉันมีปัญหากับมัน เมื่อ<b>somthing</b>ตามด้วยเครื่องหมายจุลภาคเครื่องหมายจุลภาคจะถูกวางในบรรทัดใหม่ทำให้เกิดช่องว่างระหว่างสิ่งและเครื่องหมายจุลภาคในมุมมองเบราว์เซอร์
reitermarkus

9

ฉันสร้างแพ็คเกจที่เรียกว่าHTMLBeautifyซึ่งทำงานได้ดีในการฟอร์แมต HTML ฉันใช้มันจากสคริปต์ Perl ที่ฉันค้นพบในปี 1997 ฉันอัปเดตเพื่อให้ทำงานร่วมกับแท็กที่ทันสมัยแบบใหม่ทั้งหมด :)

ตรวจสอบและแจ้งให้เราทราบว่าคุณคิดอย่างไร!

https://github.com/rareyman/HTMLBeautify


3
ฉันติดตั้งแล้ว แต่เมื่อฉันเรียกใช้ HTMLBeautify บนไฟล์ตัวอย่างมันไม่ทำอะไรเลย ข้อความแสดงว่าไฟล์สวยงาม แต่ไม่มีอะไรเกิดขึ้นกับไฟล์เนื้อหา
Sam

ฉันเดาว่าคุณใช้ Windows ... บน Windows คุณต้องรีสตาร์ท SublimeText 2 เพื่อให้สคริปต์พร้อมใช้งาน ลองทำอย่างนั้นและแจ้งให้เราทราบว่าเกิดอะไรขึ้น :)
Ross

ฉันทำแล้วสคริปต์พร้อมใช้งานมันไม่ได้เปลี่ยนแปลงอะไรเลยในไฟล์
Sam

แปลก. ฉันสมมติว่าปลั๊กอิน / แพ็กเกจอื่น ๆ ทำงานเป็นปกติหรือไม่ ฉันดูเหมือนจะไม่สามารถทำซ้ำปัญหานี้ในสภาพแวดล้อมการทดสอบของฉัน - ดังนั้นฉันไม่แน่ใจว่าจะบอกอะไรคุณ :(
Ross

นอกเหนือจากการจัดรูปแบบทุกอย่างทำงานอย่างที่ฉันคาดไว้แล้ว - อาจเป็นเพราะฉันใช้ Windows เวอร์ชั่นภาษาเยอรมันหรือไม่
Sam

7

ฉันคิดว่านี่คือสิ่งที่คุณกำลังมองหา:

https://github.com/victorporof/Sublime-HTMLPrettify


ฉันทำตามคำแนะนำแล้ว แต่ใช้งานไม่ได้ ปลั๊กอินให้ข้อผิดพลาด "'{' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก, โปรแกรมที่ทำงานได้หรือแบตช์ไฟล์"
Ravi Ram

ฉันเชื่อว่าแพคเกจเฉพาะต้องใช้โหนดที่จะติดตั้งซึ่งเป็นกิจการเพิ่มเติม ... dandean.com/nodejs-npm-express-osxไม่สนใจ NPM และ express
bgreater

@Allan ใช้งานกับ Windows ได้หรือไม่ ฉันติดตั้ง node.js ในคอมพิวเตอร์ของฉันแล้ว
Anirudha Gupta

7

ฉันยังไม่มีสิทธิ์แสดงความคิดเห็นดังนั้นนี่เป็นเพียงข้อมูลเพิ่มเติมที่เกี่ยวข้องกับคำตอบของ @ peter ด้านบนคำตอบ

ฉันพบ HTML ไม่ตรงตามที่คาดไว้หากความคิดเห็นตามเงื่อนไข IE ในส่วนหัวไม่สมบูรณ์ในบรรทัดเช่นล้างไปทางซ้าย:

<!--[if lt IE 7]>
<p class='chromeframe'>Your browser is <em>unsupported</em>. <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p>
<![endif]-->
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> 

7

มีปลั๊กอินโอเพนซอร์ซ CodeFormatter ที่ดีซึ่ง (พร้อมการใส่ใหม่) สามารถตกแต่งโค้ดที่สกปรกแม้ทั้งหมดจะอยู่ในบรรทัดเดียว


หมายเหตุ: ต้องมีการติดตั้ง PHP ในเครื่อง
ชื่อปลอม

ฉันพบว่านี่เป็นปลั๊กอินที่ดีเพียงอย่างเดียว .. และฉันได้ลองเกือบทั้งหมดแล้ว
shaneparsons

ดูเหมือนว่าสิ่งนี้มีการตั้งค่าเพื่อจัดรูปแบบแอตทริบิวต์ HTML ฉันไม่เห็นปลั๊กอินอื่น ๆ ทำเช่นนั้น? หรือฉันหายไปหรือไม่
เพรา

4

ฉันใช้ระเบียบเรียบร้อยร่วมกับระบบสร้างที่กำหนดเองเพื่อแสดง HTML

ฉันมี HTMLTidy.sublime-build ในแพ็คเกจ / ผู้ใช้ / ไดเรกทอรีของฉัน:

{
  "cmd": ["tidy", "-config", "$packages/User/tidy_config.cfg", "$file"]
}

และไฟล์ tidy_config.cfg ในไดเรกทอรีเดียวกัน:

indent: auto
tab-size: 4
show-warnings: no
write-back: yes
quiet: yes
indent-cdata: yes
tidy-mark: no
wrap: 0

และเพียงแค่เลือกสร้างระบบและกดctrl+ bหรือcmd+bเพื่อฟอร์แมตเนื้อหาไฟล์ ปัญหาเล็กน้อยอย่างหนึ่งคือ ST2 ไม่ได้ทำการรีโหลดไฟล์โดยอัตโนมัติเพื่อดูผลลัพธ์ที่คุณต้องสลับไปที่ไฟล์อื่นและย้อนกลับ (หรือไปที่แอปพลิเคชันอื่นและย้อนกลับ)

ใน Mac ฉันใช้ macports เพื่อติดตั้งเรียบร้อยบน Windows คุณต้องดาวน์โหลดด้วยตัวเองและระบุไดเรกทอรีทำงานในระบบบิลด์ที่เป็นที่เรียบร้อย:

"working_dir": "c:\\HTMLTidy\\"

หรือเพิ่มลงใน PATH


4

คุณสามารถตั้งค่าปุ่มลัดได้F12ง่าย !!!

{ "keys": ["f12"], "command": "reindent" , "args": { "single_line": false } }

ดูรายละเอียดที่นี่


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