Estoy editando un archivo .sql en Vim:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
Lo que estoy buscando hacer es tirar de la (1, 1),
línea y pegarla 137 veces; sin embargo, quiero que el segundo número entre paréntesis se incremente cada vez. La salida se vería así:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
(1, 2),
(1, 3),
...
(1, 137),
¿Hay alguna manera de hacerlo en Vim y, de ser así, qué comando usaría?
¡Gracias!
fuente
qqyypW<c-a>q135@q
. Incluso más corto si lo usa enY
lugar deyy
.Vims recientes han aprendido sobre el incremento de regiones visuales seleccionadas, así como la creación de una secuencia. Entonces puede hacer esto después de pegar su línea 137 veces:
1) seleccione visualmente en bloque ( Ctrl-V) el segundo 1 a partir de la línea 3.
2) presione gCtrl-A
He grabado un elenco de pantalla aquí
Descargo de responsabilidad: esto necesita un Vim 7.4.900 más o menos.
fuente
La forma fácil de entender / fácil de recordar / fácil de adaptar a otras situaciones para hacerlo: use el complemento VisIncr (si prefiere usar una versión que realmente sea agradable con los administradores de paquetes de este siglo en lugar de tratar con
vimball
s , puedes obtenerlo de GitHub ). Con eso:(1, 1),
línea y tira de ella:Vy
136p
1
y márquelo verticalmente:C-vGf)h
:II
:help visincr
.fuente
Jugaría con
g^a
.Tratar
137i0^v137kg^a
.fuente