2013-02-21 11 views

Antwort

23

Eine Substitution würde gut funktionieren.

:%s/}/\0\r/g 

ersetzen } mit dem ganzen Spiel \0 und eine neue Zeile Zeichen \r.
oder

:%s/}/&\r/g 

Wo & auch eine Alternative für das ganze Spiel ist, sieht ein bisschen komisch, obwohl meiner Meinung nach. Vim Golfer mögen es, weil es ihnen einen Tastendruck erspart :)

\0 oder & im Ersatz der Teile wirkt als Sonderzeichen. Während der Ersetzung ersetzt die gesamte übereinstimmende Zeichenfolge das \0- oder das &-Zeichen in der Ersetzung.

Wir können dies demonstrieren mit einer komplexeren Suchen und Ersetzen -

Which witch is which? 

eine Substitution Nehmen -

:s/[wW][ih][ti]ch/The \0/g 

Gewährt -

The Which The witch is The which? 
+4

Für solch eine Anfängerfrage würde eine Erklärung sicherlich helfen: '\ 0' (kürzer wäre' & ') fügt die Übereinstimmung wieder ein,' \ r' ist die Escape-Sequenz für eine neue Zeile (normalerweise ein Ersatz) es ist '\ n'). –

6

Die Antwort :%s/}/}\r/ ist, denke ich.

3
:%s/pre/cur\r/g 

%: auf dem gesamten Puffer arbeiten.

pre (vorheriges Muster): welches Muster wird geändert.

cur (aktuelles Muster): durch das das vorherige Muster geändert wird.

\r: neue Zeile.

g: Wiederholen Sie für jede Übereinstimmung in einer Zeile (Standard ist nur die erste ersetzen).