Wie positioniere ich den Cursor in TextMate in einem neu generierten HTML-Tag?


3

Ich komme aus dem Windows TextMate Klon E-Texteditor. Und in dieser App und auf Ruby on Rails-Bundle setzen, während .html.erbich in einem Dokument war, wenn ich Ctrl- Alt- W(äquivalent zu Ctrl- Shift- Win TextMate) eingeben sollte, dann bekomme ich

<p></p> 

Wenn der Buchstabe "p" in den ersten spitzen Klammern hervorgehoben ist, kann ich einen beliebigen Text eingeben, und die anderen schließenden Klammern "p" ändern sich entsprechend. Sowohl in TextMate als auch in E-Texteditor ist alles in Ordnung. Wenn ich dann im E-Texteditor drücke Tab, wird der Cursor zum Inhalt dieser HTML-Tags wie folgt verschoben:

<p>|</p> 

wo |steht der Cursor. Jetzt weiß ich, dass Ctrl- Shift- Wausgewählten Text in TextMate umbrechen soll, und E-Texteditor macht das auch! Aber ich finde es sehr praktisch, ein Paar HTML-Tags und Tabulatoren anstelle der Pfeiltasten selbst zu erstellen.

Vielleicht gibt es dafür eine andere Abkürzung?


Nur für den Fall, dass ich noch nicht kristallklar bin: Ctrl- Shift- W(oder eine andere Abkürzung) wird beim Drücken zuerst generiert

<p></p> 

Wenn das erste 'p' markiert ist, kann es geändert werden. Geändert oder nicht, wenn Tabdann gedrückt wird, sollte der Cursor zwischen diesen öffnenden und schließenden HTML-Tags wechseln.


Das nervt mich schon seit Ewigkeiten. Würde gerne einen Weg finden, dies zu umgehen. Die einzige mögliche Problemumgehung, die ich gefunden habe, besteht darin, den Inhalt vorher einzugeben und ihn dann umzubrechen, aber Sie haben es bereits erwähnt.
Slhck

Nik, du verwendest einfach die falsche Verknüpfung, siehe meine Bearbeitung zu meiner Antwort.
Romainl

Antworten:


2

BEARBEITEN

Irgendetwas nervte mich mit Ihrer Frage: Ich konnte mich überhaupt nicht an dieses Problem erinnern, aber irgendwie habe ich das meiste vergessen, was ich einmal über TextMate wusste (vor einem Jahr zu Vim gewechselt). Ich habe gerade TextMate neu lizenziert, um mit TM2 herumzuspielen. Hier ist Ihre Antwort:

Sie verwenden die "falsche" Verknüpfung.

CtrlShiftWdient zum Umbrechen des aktuell ausgewählten Texts mit öffnenden und schließenden Tags .

Da Sie diese Verknüpfung ohne Auswahl getroffen haben, erhalten Sie ein leeres Tag. Da es für die Verwendung mit bereits vorhandenen Inhalten entwickelt wurde, ist es logisch, dass es nicht möglich ist, diese Inhalte weiter zu bearbeiten.

Der typische Anwendungsfall ist, wenn Sie Rohtext aus einem Brief einfügen und ihn durchgehen, um die richtige HTML-Formatierung hinzuzufügen.

Diese Verknüpfung, die ein leeres HTML-Tag-Paar einfügt, ist eine Art Trugbild. Sicher tut es das, aber es ist ein Nebeneffekt, es nicht richtig zu verwenden.

Die richtige Verknüpfung dient Ctrl<zum Einfügen von öffnenden und schließenden Tags unter Verwendung des aktuellen Wortes.

Sie können es auf zwei Arten verwenden:

  1. Wenn Sie links neben dem Caret ein Leerzeichen haben, drücken Sie Ctrl<, um <p></p>das erste pausgewählte einzufügen . Sie können entweder ändern , pum so etwas wie h1und haben es zu dem schließenden Tag gespiegelt oder drücken Sie Tabden Cursor zwischen den Tags zu bewegen, wie folgt aus: <p>|</p>.

    Das ist genau das, was Sie wollen und was ich eigentlich immer getan habe. Daher mein Unbehagen mit Ihrer Frage.

  2. Wenn Ihr caret nur nach einem Wort positioniert ist, sagen wir span, treffen Ctrl<zu ersetzen spanmit <span></span>dem ersten spanausgewählten. Sie haben nun genau die gleichen Möglichkeiten wie bei der ersten Methode.

ENDE BEARBEITEN

Meine TextMate-Zeiten sind vorbei, daher ist diese Lösung wahrscheinlich nicht die beste, aber sie lässt sich sehr einfach in die Praxis umsetzen.

Erstellen Sie einfach ein Snippet mit dem Buchstaben tals Auslöser und

<${1:tag}>$0</$1>

als Inhalt.

Wenn es fertig ist, müssen Sie nur noch t<Tab>p<Tab>Ihren Inhalt eingeben.

Es ist offensichtlich, dass es einen ziemlich wichtigen Nachteil gibt: Wenn Sie Attribute hinzufügen, werden diese auf das End-Tag gespiegelt.

Dies kann durch Hinzufügen eines zusätzlichen Tabulators verringert werden:

<${1:tag}${2: }>$0</$1>

3

Sie können auch das Snippet "Wrap Selection In Tag" von ändern

<${1:p}>$TM_SELECTED_TEXT</${1/\s.*//}>

zu

<${1:p}>${0:$TM_SELECTED_TEXT}</${1/\s.*//}>
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.