it-swarm.com.de

Wie kann ich in Vim eine Zeichenfolge am Ende jeder Zeile einfügen?

Ich will hinzufügen * bis zum Ende jeder Zeile in Vim.

Ich habe den Code erfolglos ausprobiert

:%s/\n/*\n/g

:%s/$/\*/g

sollte arbeiten. Also sollte :%s/$/*/g as MrWiggles weist richtig hin.

330
dirkgently

Noch kürzer als der Befehl: search:

:%norm A*

Das bedeutet es:

 %       = for every line
 norm    = type the following commands
 A*      = append '*' to the end of current line
325
Cyber Oliveira

Ebenfalls:

:g/$/norm A*

Ebenfalls:

gg<Ctrl-v>G$A*<Esc>
41
Brian Carper

Ich denke, der visuelle Block-Modus ist eine bessere und vielseitigere Methode, um mit solchen Dingen umzugehen. Hier ist ein Beispiel:

Dies ist die erste Zeile.
Dies ist die zweite.
Der dritte.

"Hallo Welt" einfügen (Leerzeichen + Zwischenablage) am Ende jeder dieser Zeilen:

  • Drücken Sie bei einem Zeichen in der ersten Zeile Strg-V (oder Strg-Q, wenn Strg-V Einfügen ist).
  • Drücken Sie jj, um den visuellen Block über drei Zeilen zu erweitern.
  • Drücken Sie $, um den visuellen Block bis zum Ende jeder Zeile zu erweitern. Drücken Sie A und dann die Leertaste und geben Sie Hello world ein. + dann Esc.

Das Ergebnis ist:

Dies ist die erste Zeile. Hallo Welt.
Dies ist die zweite. Hallo Welt.
Der dritte. Hallo Welt.

(Beispiel aus http://vim.wikia.com/wiki/Inserting_text_in_multiple_lines )

27
nicole

Wenn du Hallo Welt am Ende jeder Zeile hinzufügen willst:

:%s/$/HelloWorld/

Wenn Sie dies für eine bestimmte Anzahl von Zeilen tun möchten, geben Sie 20 bis 30 ein:

:20,30s/$/HelloWorld/

Wenn Sie dies am Anfang jeder Zeile tun möchten, verwenden Sie:

:20,30s/^/HelloWorld/
10
utkarsh

... und jede Zeile mit einem * voranstellen (an den Anfang setzen),

%s/^/*/g
5
JohnnyCoder

Sie brauchen das g am Ende nicht wirklich. So wird es:

:%s/$/*

Oder wenn du nur das * am Ende von, sagen Sie Zeilen 14-18:

:14,18s/$/*

oder

:14,18norm A*
5
Pedro Norwego

Eine Option ist:

:g/$/s//*

Dies findet jeden Zeilenende-Anker und ersetzt ihn durch *. Ich sage "Ersatz", aber in Wirklichkeit handelt es sich eher um ein Anhängen, da der Anker eher etwas Besonderes als ein normaler Charakter ist. Weitere Informationen finden Sie unter Potenz von g - Beispiele .

4
paxdiablo
:% s/\ n/*\r/g

Ihr erstes ist anderswo korrekt, aber Vim muss aus irgendeinem Grund ein anderes Newline-Handling haben.

3
user42092
%s/\s*$/\*/g

dies erledigt den Trick und stellt sicher, dass führende Leerzeichen ignoriert werden.

1
ng.