Estou editando um arquivo .sql no Vim:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
O que estou procurando fazer é puxar a (1, 1),
linha e colá-la 137 vezes; no entanto, quero que o segundo número entre parênteses seja incrementado a cada vez. A saída seria semelhante a:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
(1, 2),
(1, 3),
...
(1, 137),
Existe uma maneira de fazer isso no Vim e, em caso afirmativo, qual comando eu usaria?
Obrigado!
fonte
qqyypW<c-a>q135@q
. Ainda mais curto se você usar emY
vez deyy
.Vims recentes aprenderam sobre o incremento de regiões visuais selecionadas, bem como a criação de uma sequência. Então você pode fazer isso depois de colar sua linha 137 vezes:
1) selecionar visualmente o bloco ( Ctrl-V) o segundo 1 a partir da linha 3.
2) pressione gCtrl-A
Gravei um elenco de tela aqui
Isenção de responsabilidade: isso precisa de um Vim 7.4.900 ou mais.
fonte
A maneira fácil de entender / fácil de lembrar / fácil de se adaptar a outras situações: fazê-lo: use o plug- in VisIncr (se você preferir usar uma versão que seja realmente agradável com os gerenciadores de pacotes deste século, em vez de lidar com
vimball
s , você pode obtê-lo no GitHub ). Com isso:(1, 1),
linha e puxe-a:Vy
136p
1
e marque-a verticalmente:C-vGf)h
:II
:help visincr
.fonte
Eu brincaria
g^a
.Tente
137i0^v137kg^a
.fonte