À partir d’une ardoise vierge, comment puis-je obtenir un document contenant
1
2
3
4
5
6
7
8
9
10
…
100
Pour être clair, je ne veux pas que ces chiffres soient affichés dans la marge; Je veux les insérer dans le document lui-même.
line-numbers
text-generation
200_success
la source
la source
<C-r>=range(1,100)
.En plus du pure-vim de Undo
:put =range(1,100)
(qui vous laisse en réalité avec une ligne vide en haut), vous pouvez, en fonction de votre système d'exploitation, utiliser l'une de ses commandes. Par exemple, sur une machine Unix / Linux:Ce qui précède fonctionne en canalisant le tampon entier (vide) vers
seq
, ce qui ignore son entrée et ne sort que les nombres de 1 à 100. Vim remplace alors tout le tampon parseq
la sortie de.C'est utile lorsque vous êtes déjà familiarisé avec un moyen en ligne de commande d'obtenir ce que vous voulez.
la source
Pour mémoire, et certainement pas le moyen le plus court (voir la solution géniale de @ Undo), mais une séquence de frappe suffira également:
i1EscqaYpCtrl+aq98@a
Laissez-moi vous en parler:
i1<Esc>
- insère le chiffre 1, puis retourne en mode commandeqa
- commencer à enregistrer une macro dans le registre "a"Y
- copier la ligne en coursp
- coller la ligne en cours (le curseur se déplacera également vers la ligne collée)<Ctrl>a
- incrémente le nombre suivant sur la ligne, le faisant 2q
- arrêter d'enregistrer la macro (le registre "a" était-il)98@a
- rejouer la macro dans le registre "a" 98 foisla source
Voici une approche différente, qui nécessite un nouveau Vim (quelque chose comme 7.4.800)
Cela suppose un tampon vide et «1» dans le registre a. Entrez d' abord 100 1 dans votre tampon, "a100P.
Puis sélectionnez visuellement les lignes 2 à 100 :2EnterVG.
Maintenant, appuyez sur gCtrl+ A.
Lisez l'aide à
:h v_g_CTRL-A
la source
:h g_CTRL-A
Je sais que cette question est vraiment ancienne, mais il y a une autre façon de le faire aussi. Essaye ça:
99o<esc>
ouvrira simplement 100 lignes vierges. Ensuite, nous lançons une commande de substitution:la source