Kann Textmate HTML gut einrücken?


17

Hat Textmate eine Funktion, um HTML gut einzurücken?

HTML Tidy rückt es ein - aber es scheint auch Tags zu löschen. (Dies ist nicht ganz korrektes HTML, aber trotzdem!)

<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>

Können Sie ein Beispiel für HTML geben, in dem Tags gelöscht werden, da dies überraschend ist
user151019

@ Mark: Aktualisiert mit Code
Casebash

@Casebash Ich habe versucht, Tidy mit Ihrem Code und für mich nur Tags hinzugefügt. copypastecode.com/46216
Robert S Ciaccio

@calvera: Stellen Sie sicher, dass Ihr Dokumenttyp auf HTML und nicht auf
Nur-

3
@Casebash: es wurde auf html gesetzt ... Soweit ich mich an das Tidy-Plugin für Notepad ++ erinnere, wird es über eine Textdatei konfiguriert. Vielleicht stimmt etwas mit der Tidy-Konfiguration nicht.
Robert S Ciaccio

Antworten:


20

Sie können dann + drücken A, um alle auszuwählen Text->Indent Selection.


Jahre von TextMate und noch nie gesehen oder verwendet diese Funktion ... \ o /
brasofilo

Leider ist dies keine vollständige XML-Formatierung: Es werden falsch eingerückte Zeilen beibehalten und Tags in derselben Zeile nicht in separate Zeilen aufgeteilt. Verwenden von Textmate 2.0-rc.4.
Alexander Klimetschek

13

Sie können verwenden Bundles > HTML > Tidyoder die Verknüpfung ctrl+ + H.


3
Tidy rückt es nicht nur ein, es scheint auch Teile davon zu löschen!
Casebash

1
Frage war über Einrücken nicht aufräumen
Tig

Das Aufräumen schlägt auch fehl, wenn Probleme wie unbekannte Elementnamen auftreten.
Alexander Klimetschek

1

Ich möchte auf etwas hinweisen, das die anderen Antworten ein wenig kreuzt:

Wenn Sie den Text auswählen, den Sie formatieren (oder erneut einrücken) möchten, wendet TextMate nur darauf bestimmte Aktionen an. Wenn Sie also CMD+ AIhr Dokument und dann Tidy (entweder über das Menü Bundles> HTML oder über die Verknüpfung CTRL+ SHIFT+ H) anwenden , werden meistens nur Einrückungen ausgeführt und Warnungen zu Überprüfungen übersprungen (was manchmal unnötig ist, da wir möglicherweise an Seitenausschnitten arbeiten) ).


0

Sie können stattdessen Xcode oder Dashcode verwenden, wenn Sie die Entwicklertools installieren. Sie sind kostenlos auf den Installations-CDs enthalten, die mit Ihrem Computer geliefert wurden. Ich glaube, sowohl Xcode als auch Dashcode haben Syntaxhervorhebungen.

Wenn Sie wirklich gute Software wollen, besorgen Sie sich Coda. Es ist ein bisschen teuer bei 100 Dollar, aber ich würde definitiv sagen, dass es sich lohnt. Es hat Syntax-Hervorhebung und (der große Teil für mich) Autovervollständigung.


0

Ja. Der Tidy-Aufruf im integrierten HTML-Bundle von TextMate kann mit Ihrem HTML umgehen.

Die Bundles von TextMate -> HTML -> Tidy erzeugen:

<!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>

Auf Ihrem Beispielcode. Nichts ist verschwunden. Sie erhalten außerdem die folgenden Warnungen:

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

Das Problem, das ich mit der eingebauten Text -> Indent Selectionoder aufgeräumten Lösung hatte, ist, dass sie mit partiellem HTML-Code nicht gut funktioniert. Dies ist beispielsweise wichtig, wenn Sie in WordPress bearbeiten oder mit Partials in Ruby on Rails arbeiten.

Die für mich funktionierende Lösung bestand darin, dem Bundle einen Befehl mit einem benutzerdefinierten Perl-Skript von John Watson hinzuzufügen, das ich hier gefunden habe: http://snipplr.com/view.php?codeview&id=28256

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.