A partir de una pizarra en blanco, ¿cómo puedo obtener un documento que contiene
1
2
3
4
5
6
7
8
9
10
…
100
Para ser claros, no quiero que estos números se muestren en el margen; Quiero que se inserten en el documento mismo.
line-numbers
text-generation
200_success
fuente
fuente
<C-r>=range(1,100)
.Además de Undo's pure-vim
:put =range(1,100)
(que en realidad te deja con una línea en blanco arriba), puedes, dependiendo de tu sistema operativo, usar uno de sus comandos. Por ejemplo, en una caja de Unix / Linux:Lo anterior funciona canalizando todo el búfer (vacío) a
seq
, que ignora su entrada y solo emite los números del 1 al 100. Vim luego reemplaza todo el búfer conseq
la salida de.Eso es útil cuando ya está familiarizado con alguna forma de línea de comandos para obtener lo que desea.
fuente
Para el registro, y definitivamente no es el camino más corto (ver la increíble solución de @ Deshacer), pero la secuencia de teclas también lo hará:
i1EscqaYpCtrl+aq98@a
Déjame desglosar eso para ti:
i1<Esc>
- inserte el número 1, luego vuelva al modo de comandoqa
- comenzar a grabar una macro en el registro "a"Y
- copiar la línea actualp
- pegue la línea actual (el cursor también se moverá a la línea pegada)<Ctrl>a
- incremente el siguiente número en la línea, haciéndolo 2q
- dejar de grabar la macro (se registró "a")98@a
- reproducir la macro en el registro "a" 98 vecesfuente
Aquí hay un enfoque diferente, que necesita un Vim más nuevo (algo así como 7.4.800)
Esto supone un búfer vacío y '1' en el registro a. Primero introduzca 100 1 en su memoria intermedia, "a100P.
Luego, seleccione visualmente las líneas 2 hasta 100 :2EnterVG.
Ahora presiona gCtrl+ A.
Lee la ayuda en
:h v_g_CTRL-A
fuente
:h g_CTRL-A
Sé que esta pregunta es muy antigua, pero también hay otra forma de hacerlo. Prueba esto:
99o<esc>
solo abrirá 100 líneas en blanco. Luego, ejecutamos un comando sustituto:fuente