Frage

Ich möchte Textmates STRG+ALT+w nachahmen, wodurch ein neues Paar öffnender und schließender HTML-Tags in derselben Zeile erstellt wird.

In VIM Surround verwende ich dafür STRG+st im Bearbeitungsmodus, aber nach dem Setzen des Tags wird immer eine neue Zeile eingerückt und erstellt, sodass sie wie folgt aussieht (* = Cursorposition):

<p>
  *
</p>

Gibt es eine Möglichkeit, dies zu erreichen?:

<p>*</p>
War es hilfreich?

Lösung

Ich vermute, Ihr Problem besteht darin, dass der ausgewählte Bereich „zeilenweise“ ist.Wenn Sie beispielsweise ein paar Leben mit auswählen V und umgeben Sie es mit Tags. Die Tags werden eine Zeile über und eine unter den ausgewählten Zeilen platziert.

Sie möchten wahrscheinlich eine „charakterbezogene“ Auswahl erstellen, mit v bevor man es umgibt.

Bitte posten Sie auf jeden Fall die von Ihnen erstellte Karte, damit wir Ihnen bei der Fehlerbehebung helfen können.


Aktualisieren

Nach einigen Klarstellungen in den Kommentaren würde ich Ihnen sagen, dass das Surround-Plugin nicht die beste Option ist.Wie der Name schon sagt, wurde es für den Umgang mit umgebenden Inhalten entwickelt.Daher benötigen Sie möglicherweise Inhalte zum Surrounden.

In Ihrem Fall empfehle ich einen Blick hinein HTML AutoCloseTag.Dieses Plugin schließt das HTML-Tag, sobald Sie das eingeben >.Es ist sicherlich besser geeignet und erfordert weniger Tastenanschläge als Surround.

<p         <--- Now when you type ">", if becomes:
<p>|</p>   <--- Where "|" is the cursor.

Dieses Verhalten tritt natürlich bei jedem Tag auf.Aber das kann praktisch sein, wenn es Ihnen gefällt.

Andere Tipps

Geben Sie im Normalmodus aus dem Normalmodus ein, um den visuellen Modus aufzurufen, und geben Sie ein Öffnen und Schließen von generationstabelletischetagcode-Tag in derselben Zeile an der aktuellen Cursorposition aus.Verwenden Sie ein Kapital s, um den aktuellen Gedankenstrich aufrechtzuerhalten.

Dies gibt den Cursor nicht zwischen den Tags zwischen den Tags, wenn Sie beschreiben, aber weder TextMates Strg W Tastenkombinationen (ich denke, Sie meinten, dass Sie CTRL + SHIFT + W meinten,nicht Strg + Alt + W, da letzterer nur ein Diamantzeichen ausgibt.)

Meine Antwort kommt wahrscheinlich zu spät, aber ich werde versuchen, zu helfen. Ich hatte ein ähnliches Problem mit Vimsurround Plugin.Jedes Mal, wenn ich Satz (eine Zeile) mit Strg + V auswählt, und versuchen Sie, es mit etwas zu umgeben, das ich bekomme:

generasacodicetagpre.

Anstelle davon:

generasacodicetagpre.

Ich habe eine einfache Lösung gefunden: Aus einem normalen Modus wähle ich eine Zeile mit vis -befehl und tippe dann die Hauptstadt C (mein Vim Surround-Mapping) und wähle Klammern nach Surround. Dann bekomme ich eine Linie gutumgeben.

Der Fragezeichen ist technisch falsch lagert, basierend auf dem, was der Autor tatsächlich sucht, aber da ich tatsächlich nach der Antwort auf die im Titel gefragte Frage suchte, sollte ich auch eine Antwort darauf geben.

So erstellen Sie ein neues Tag, das ein Element umgibt, ohne dass die automatische Einrückung VIM Surround verwendet wird, wenn Sie eine Block-Wise-Auswahl verwenden (dh: VYSS ), können Sie stattdessen etwas tun:

^ ys $

Dieser Befehl bewegt den Cursor mit dem ersten nicht leeren Zeichen der Zeile, wodurch der Befehl ausgegeben wird, den Sie verwenden möchten, um Sie umgeben möchten, und bewegen Sie sich bis zum Ende der Zeile.Dann starten Sie einfach mit dem Eintreten Ihres Tags.

Das Ergebnis ist folgendes:

generasacodicetagpre.

könnte so etwas werden:

generasacodicetagpre.

Der Befehl ist auch wiederholbar mit . und alle normalen anderen Vim-Güte.

Bin über diese Frage gestolpert, weil ich mich das auch gefragt habe. Ich glaube, der einfachste Weg, dies zu tun, ist einfach:

yss<p>

(yss umgibt eine Zeile mit etwas ohne Einrückung – siehe hier: http://www.catonmat.net/blog/vim-plugins-surround-vim/)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top