Ich bearbeite eine .sql-Datei in Vim:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
Was ich tun möchte, ist, die (1, 1),
Linie zu ziehen und sie 137-mal einzufügen ; Ich möchte jedoch, dass die zweite Zahl in Klammern jedes Mal erhöht wird. Die Ausgabe würde so aussehen:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
(1, 2),
(1, 3),
...
(1, 137),
Gibt es eine Möglichkeit, dies in Vim zu tun, und wenn ja, welchen Befehl würde ich verwenden?
Vielen Dank!
quelle
qqyypW<c-a>q135@q
. Noch kürzer, wenn SieY
statt verwendenyy
.Neueste Vims haben gelernt, visuell ausgewählte Bereiche zu erhöhen und eine Sequenz zu erstellen. Sie können dies also tun, nachdem Sie Ihre Zeile 137 Mal eingefügt haben:
1) Wählen Sie Ctrl-Vausgehend von Zeile 3 ( ) die zweite 1 aus.
2) drücken gCtrl-A
Ich habe einen Screencast aufgezeichnet hier
Haftungsausschluss: Dies benötigt eine Vim 7.4.900 oder so.
quelle
Die einfach zu verstehende / leicht zu merkende / leicht anpassbare Methode: Verwenden Sie das VisIncr- Plugin (wenn Sie lieber eine Version verwenden möchten , die mit den Paketmanagern aus diesem Jahrhundert gut funktioniert, als mit
vimball
s umzugehen) , Sie können es von GitHub erhalten ). Damit:(1, 1),
Linie und ziehe daran:Vy
136p
1
und markiere sie vertikal:C-vGf)h
:II
:help visincr
.quelle
Ich würde mit spielen
g^a
.Versuchen Sie es
137i0^v137kg^a
.quelle