Ich habe eine Textdatei, die so aussieht:
A.
text
text
text
A.
more text
more text
A.
more text
Ich möchte alle Zeilen zwischen den "Markierungen" verbinden, A.
damit es so aussieht:
A.texttexttext
A.more textmore text
A.more text
Wie kann ich das in Vim machen?
:help \@!
Weitere Informationen zu diesem Teil finden Sie in Vim. Ansonsten ist es hoffentlich einfach mit meiner Erklärung. Ein Problem bei Ihrem Ansatz besteht darin, dass "A.
" im Text, wenn auch nicht als isolierte Markierungslinie, so aufgeteilt wird, als wäre es ursprünglich eine Markierung. In der Praxis ist dies möglicherweise kein Problem (ich weiß nicht, wie Ihre "echte" Datei aussieht), aber im Allgemeinen kann es zu unerwünschtem Verhalten führen, wenn man sich dessen nicht bewusst ist.:%s///
Syntax nicht vertraut sind : Es handelt sich um eine "Search and Replace" -Syntax in Vim.:
Startet den Befehl,%
gibt den gesamten Puffer als Bereich an unds
startet eine Ersetzung./
ist das Mustertrennzeichen (jedes andere Zeichen kann verwendet werden, ist aber/
"Standard"). Das erste/
startet das Suchmuster, das zweite das Ersetzungsmuster und das dritte beendet es. Nachfolgende Modifikatoren sind verfügbar, um die Groß- und Kleinschreibung nicht zu berücksichtigen usw.\1
repräsentiert die erfasste Gruppe im Suchmuster.:%s/foo/bar/
ersetztfoo
durchbar
in der Datei.:%s/^A\.//
. Die Methode in der Antwort erfasst nicht die^A\.
Muster selbst (sondern deren Abwesenheit), sodass diese Zeichenfolgen nicht auf offensichtliche Weise geändert werden können.Dies funktioniert auch (wenn die erste Zeile mit beginnt
A.
)quelle