Aus Frage Wie ersetze ich ein Zeichen für eine neue Zeile in Vim? . Sie müssen \ r verwenden, wenn Sie Text für eine neue Zeile wie diese ersetzen
:%s/%/\r/g
Wenn Sie jedoch das Ende von Zeilen und Zeilenumbrüchen für ein Zeichen ersetzen, können Sie Folgendes tun:
:%s/\n/%/g
Welcher Abschnitt des Handbuchs dokumentiert diese Verhaltensweisen und welche Gründe stecken dahinter?
%
beim Suchen und Ersetzen?:s
wird die Ersetzung nur auf die aktuelle Zeile angewendet .:%s
Lässt es die gesamte Datei adressieren. Mehr .Antworten:
Aus vim docs zu Mustern :
quelle
Von http://vim.wikia.com/wiki/Search_and_replace :
quelle
:h :s%
, insbesondere den letzten Absatz. (via:h :s
)Ein weiterer Aspekt dabei ist, dass
\0
, was traditionell NULL ists//\0/
, "das gesamte übereinstimmende Muster" bedeutet. (Was übrigens überflüssig ist und länger als&
).\0
bedeutenNULL
, also verwenden Sie\n
\n
bedeuten\n
, also verwenden Sie\r
.\r
so meinen\r
, aber ich weiß nicht, wer dieses Zeichen absichtlich hinzufügen möchte.-
quelle
\n
verschiedene Bedeutungen auf der Suche hat und Muster ersetzen. Fantastische Antwort.:help NL-used-for-Nul
quelle
Öffnen
:h :s
Sie zunächst den Abschnitt "4.2 Ersatz" der Dokumentation zu "Änderung". Folgendes akzeptiert der Befehl:Beachten Sie die Beschreibung zu
pattern
undstring
Jetzt wissen Sie also, dass das Suchmuster und das Ersetzungsmuster unterschiedlichen Regeln folgen. Wenn Sie dem Link zu folgen
|pattern|
, gelangen Sie zu dem Abschnitt, in dem die gesamten in Vim verwendeten regulären Ausdrucksmuster erläutert werden.In der Zwischenzeit gelangen
|sub-replace-special|
Sie zum Unterabschnitt "4.2 Ersetzen", der die Ersetzungsmuster enthält, darunter\r
Zeilenumbruch / -teilung.(Die Verknüpfung zu diesem Teil des Handbuchs lautet
:h :s%
)quelle