Wählen Sie die Zeilen aus und drücken Sie :
, um den Befehlsmodus aufzurufen. Vim wird automatisch ausgefüllt '<,'>
, wodurch der Bereich auf die ausgewählten Zeilen beschränkt wird. In Ihrem Beispiel können Sie den :s
Befehl verwenden, um den Austausch durchzuführen:
:'<,'>s/\(\w\+\), \(\w\+\)/\2, \1/
Dadurch werden zwei durch ein Komma getrennte Wörter in jeder Zeile der visuellen Auswahl ausgetauscht.
Sie können auch jedes andere Lesezeichen oder jede andere Zeilenposition verwenden '<
und '>
mögen, z. B. als Teil eines Bewegungsbefehls, sodass im normalen Modus d'<
von der aktuellen Cursorposition bis zum Anfang der ersten Zeile in der visuellen Auswahl gelöscht wird. Die Markierungen bleiben auch dann wirksam, wenn der Block nicht mehr optisch hervorgehoben wird.
Wenn Sie ein aufgezeichnetes Makro in jeder Zeile wiedergeben möchten, müssen Sie das Makro mit dem :normal
Befehl ausführen . Leider :normal
funktioniert der Befehl nicht in einer Reihe von Zeilen, aber Sie können dies mit dem :global
Befehl beheben . Dadurch wird in :ex
jeder Zeile ein Befehl ausgeführt, der einem regulären Ausdruck entspricht. Sie können dies also tun:
:'<,'>g/^/ norm @a
Erläuterung:
:'<,'> for every line in the visual block
g/^/ on every line that matches the regex /^/ - i.e. every line
norm run in normal mode
@a the macro recorded in a