A partir de uma folha em branco, como posso obter um documento que contém
1
2
3
4
5
6
7
8
9
10
…
100
Para ser claro, não quero que esses números sejam exibidos na margem; Quero que eles sejam inseridos no próprio documento.
line-numbers
text-generation
200_success
fonte
fonte
<C-r>=range(1,100)
.Além do pure-vim do Undo
:put =range(1,100)
(que na verdade deixa uma linha em branco no topo), você pode, dependendo do sistema operacional, usar um de seus comandos. Por exemplo, em uma caixa Unix / Linux:O procedimento acima funciona canalizando todo o buffer (vazio) para
seq
, o que ignora sua entrada e apenas gera os números de 1 a 100. O Vim substitui todo o buffer pelaseq
saída.Isso é útil quando você já está familiarizado com alguma maneira da linha de comando de obter o que deseja.
fonte
Para o registro, e definitivamente não é o caminho mais curto (consulte a incrível solução do @ Undo), mas a sequência de pressionamentos de tecla também o fará:
i1EscqaYpCtrl+aq98@a
Deixe-me explicar isso para você:
i1<Esc>
- insira o número 1 e volte ao modo de comandoqa
- comece a gravar uma macro no registro "a"Y
- copie a linha atualp
- cole a linha atual (o cursor também se moverá para a linha colada)<Ctrl>a
- incremente o próximo número na linha, tornando-o 2q
- pare de gravar a macro (foi registrada "a")98@a
- repita a macro no registro "a" 98 vezesfonte
Aqui está uma abordagem diferente, que precisa de um Vim mais recente (algo como 7.4.800)
Isso pressupõe um buffer vazio e '1' no registro a. Primeiro, digite 100 1 no seu buffer "a100P,.
Em seguida, selecione visualmente as linhas 2 a 100 :2EnterVG.
Agora pressione gCtrl+ A.
Leia a ajuda em
:h v_g_CTRL-A
fonte
:h g_CTRL-A
Sei que essa pergunta é realmente antiga, mas há outra maneira de fazer isso também. Tente o seguinte:
99o<esc>
abrirá apenas 100 linhas em branco. Em seguida, executamos um comando substituto:fonte