Frage

Ich verwende Vim Surround-und wiederholen Plugins Textzeilen zu wickeln mit HTML-Tags.

Ich werde verwenden "yse

" und "ys $

", sie funktionieren beide gut.

Ich versuche, den Befehl zu wiederholen mit „“, und es zeigt

in der Klemme, aber wenn ich die Eingabetaste drücken, den Befehl auszuführen, Surround ersetzt, was sollte

und

mit ^ M .

Meine Linie sieht aus wie ^ Mtext hier ^ M

Ich erkenne die Zeichen als Zeilenende, aber ich verstehe nicht, warum Surround wird nicht meine Linie wickeln mit dem Code es im Terminal zeigt (was richtig ist), sondern wickelt meine Linie mit DOS-Zeilenenden.

Ich verwende gVim auf Windows XP, wenn das macht keinen Unterschied.

War es hilfreich?

Lösung

Es ist eigentlich, weil <p> nicht wirklich da ist, wenn Sie den Befehl mit . wiederholen

Versuchen Sie folgendes: Bevor Sie den Befehl mit . ersten Treffer o wiederholen Sie die Kommandozeile Bereich von Text zu leeren, dann drücken Sie .

Sie werden sehen, dass es tatsächlich leer ist, weshalb sich der Cursor auf dem ersten Zeichen ist.

die Verpackung richtig wiederholen, werden Sie entweder in <p> jedes Mal eingeben müssen oder eine schnelle Makro aufzeichnen.

Makro: ys$<p>

Paste, die in vim, es zu markieren, und gibt "py

Jetzt können Sie das Makro mit @p

laufen

Andere Tipps

surround.vim die Dokumentation sagt:

The "." command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136. 

Wenn Sie also yss verwenden sollte es funktionieren, aber anscheinend andere Versionen von „ys“ werden nicht unterstützt. Klingt wie eine gute Funktion benötigt zum repeat.vim Eigentümer vorzulegen.

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