Textmate สามารถเยื้อง HTML ได้หรือไม่


17

Textmate มีฟังก์ชั่นในการย่อหน้า HTML หรือไม่?

HTML เป็นระเบียบเรียบร้อยเยื้อง - แต่ดูเหมือนว่าจะลบแท็กเช่นกัน (นี่ไม่ใช่ HTML ที่เหมาะสมอย่างสมบูรณ์ แต่ยัง!)

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js"></script>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<body>
    <!-- All above disappears -->       
    <p>Test</p>
    <!-- All below disappears-->
</body>
</html>

คุณสามารถยกตัวอย่างของ html ที่ลบแท็กได้หรือไม่เนื่องจากเป็นเรื่องที่น่าประหลาดใจ
Mark

@ Mark: อัปเดตด้วยรหัส
Casebash

@Casebash ฉันลองเรียบร้อยกับรหัสของคุณและสำหรับฉันมันเพิ่มแท็กเท่านั้น copypastecode.com/46216
Robert S Ciaccio

@calvera: ตรวจสอบว่าเอกสารของคุณถูกตั้งค่าเป็น HTML ไม่ใช่ข้อความล้วน
Casebash

3
@Casebash: มันถูกตั้งค่าเป็น html ... FYI จากสิ่งที่ฉันจำเกี่ยวกับปลั๊กอิน Tidy สำหรับ Notepad ++ มันถูกกำหนดค่าผ่านไฟล์ข้อความ ดังนั้นอาจมีบางอย่างผิดปกติกับการกำหนดค่าเรียบร้อย
Robert S Ciaccio

คำตอบ:


20

คุณสามารถกด+ เพื่อเลือกทั้งหมดแล้วAText->Indent Selection


TextMate หลายปีและไม่เคยเห็นหรือใช้คุณสมบัตินี้ ... \ o /
brasofilo

น่าเสียดายที่นี่ไม่ใช่การจัดรูปแบบ XML เต็มรูปแบบ: มันเก็บสายที่เยื้องเข้าไปไม่ถูกต้องและไม่แยกแท็กในบรรทัดเดียวกันลงในบรรทัดที่แยกกัน ใช้ Textmate 2.0-rc.4
Alexander Klimetschek

13

คุณสามารถใช้Bundles > HTML > Tidyหรือทางลัดctrl+ +H


3
เรียบร้อยไม่เพียงเยื้องมัน - มันก็ดูเหมือนว่าจะลบบางส่วนของมันเช่นกัน!
Casebash

1
คำถามเกี่ยวกับการเยื้องไม่ใช่การจัดเรียง
tig

การจัดระเบียบยังล้มเหลวเมื่อมีปัญหาบางอย่างเช่นชื่อองค์ประกอบที่ไม่รู้จัก
Alexander Klimetschek

1

ฉันต้องการชี้ให้เห็นสิ่งที่ข้ามคำตอบอื่น ๆ :

หากคุณเลือกข้อความที่คุณต้องการจัดรูปแบบ (หรือใส่สารบัญ) TextMate จะใช้การกระทำเฉพาะกับสิ่งนั้น ดังนั้นหากคุณCMD+ Aเอกสารของคุณแล้วใช้ Tidy (อย่างใดอย่างหนึ่งจากการรวมกลุ่ม> เมนู HTML หรือด้วยCTRL+ SHIFT+ Hทางลัด) ส่วนใหญ่จะทำการเยื้องเท่านั้นโดยข้ามการแจ้งเตือนการตรวจสอบความถูกต้อง (ซึ่งบางครั้งก็ไม่จำเป็น )


0

คุณสามารถใช้ Xcode หรือ Dashcode แทนหากคุณติดตั้งเครื่องมือสำหรับนักพัฒนา พวกเขามาฟรีในแผ่นติดตั้งที่มาพร้อมกับคอมพิวเตอร์ของคุณ ฉันเชื่อว่า Xcode และ Dashcode มีการเน้นไวยากรณ์

หากคุณต้องการซอฟต์แวร์ที่ดีจริงๆรับCoda มันค่อนข้างแพงที่ $ 100 แต่ฉันอยากจะบอกว่ามันคุ้มค่าแน่นอน มันมีการเน้นไวยากรณ์และการเติมข้อความอัตโนมัติ (ส่วนใหญ่สำหรับฉัน)


0

ใช่. การโทรอย่างเป็นระเบียบในชุด HTML ในตัวของ TextMate สามารถจัดการกับ HTML ของคุณได้

การรวมกลุ่มของ TextMate -> HTML -> Tidy สร้าง:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js">
</script>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js">
</script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
    </head>
    <body>
        <!-- All above disappears -->
        <p>
            Test
        </p><!-- All below disappears-->
    </body>
</html>

ในรหัสตัวอย่างของคุณ ไม่มีอะไรหายไป คุณยังได้รับคำเตือนต่อไปนี้:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 5 - Warning: <body> isn't allowed in <head> elements
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:tal"
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:metal"

0

ปัญหาที่ฉันประสบกับText -> Indent Selectionโซลูชันในตัวหรือวิธีการที่เป็นระเบียบเรียบร้อยคือมันใช้งานไม่ได้กับโค้ด HTML บางส่วน นี่เป็นตัวอย่างที่สำคัญเมื่อแก้ไขใน WordPress หรือทำงานกับ partials ใน Ruby on Rails

วิธีแก้ปัญหาที่ใช้งานได้สำหรับฉันคือการเพิ่มคำสั่งลงในบันเดิลด้วยสคริปต์ Perl ที่กำหนดเองโดย John Watson ที่ฉันพบที่นี่: http://snipplr.com/view.php?codeview&id=28256

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