vi comando para agregar una línea en blanco?


24

En vi, puedo usar oo Opara agregar una línea en blanco y entrar en modo de inserción. Pero, ¿qué pasa si quiero permanecer en modo comando? ¿Hay un comando para esto?

En Google, veo sugerencias para agregar cosas a mi vimrc, pero parece que debería haber una manera más fácil (que siempre funcionará).

Respuestas:


25

De acuerdo con las preguntas frecuentes de VIM , puede usar el :putcomando:

12.15. ¿Cómo inserto una línea en blanco encima / debajo de la línea actual sin ingresar al modo de inserción?

Puede usar el comando ": put" ex para insertar líneas en blanco. Por ejemplo, intente

: put = ''
: put! = ''

Para más información, lea

: ayuda: poner

pero realmente es más fácil agregar:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

a tu .vimrc. De esta manera se puede presionar Entero Shift-Enteren normal modepara insertar una línea en blanco debajo o por encima de línea actual. Por supuesto sustituto <Enter>y <S-Enter>con sus claves preferidas.


15

Parte del atractivo de usar VIes tener un modo de comando para manipular el texto y un modo de edición para agregar texto. Esto evita que tenga que presionar CTRL, lo que sea para lograr cosas.

Las otras sugerencias pueden funcionar, no las he probado, pero parecen requerir bastantes caracteres o manipular VIdemasiado su entorno.

Intente usar o[ESC]seguido de a .para cada nueva línea que desee agregar, o 5.para agregar 5 líneas. Esto es mucho más rápido y siempre funcionará en cualquier instalación de VI.


1
Puede usar .para repetir, pero también puede hacer <number>o<esc>, por ejemplo:5o<esc>
bollovan

1
Eso ciertamente funcionaría. Pero me gusta ver cómo el comando realmente impactará el documento antes de que lo haga hacerlo varias veces. No puedo decirte cuántas veces o'dagregué un nuevo párrafo en VI, solo para descubrir que el párrafo bonito en realidad era seis líneas cuidadosamente divididas / entrelazadas.
Glorytoad


1

Esto agregará una línea en blanco después de la línea actual:

:put _ 

Alternativamente, especifique una línea al comienzo.


0

En Vim 7.3: <number>o<esc>crea solo una línea vacía.


Bueno, al agregar <esc>pasas de nuevo del modo de inserción al modo de comando. Creo que está buscando una respuesta que no vaya al modo insertar en absoluto.
Bernhard

Oh! Olvidé salir del modo de inserción con <esc>. En este caso, funcionará. Incluso duplicará la línea editada en todas las líneas siguientes.
Hakim


0

Para insertar una línea en blanco después de la línea actual mientras permanece en modo comando, use:

: r !echo

Este es el rcomando " ead in a file", pero en lugar de darle un nombre de archivo, le decimos que lea el resultado de un comando de shell ( !); ese comando de shell echosimplemente imprime una línea en blanco. Después de insertar la línea en blanco, permanece en modo comando.


-2

Me sorprende que nadie más haya mencionado esto:

Use 'r' seguido de 'Enter key' en el modo de línea de comando.

Tarde a la fiesta por 7 años aunque :)


1
Excepto que esto lo saca del modo de comando y reemplaza la línea actual por una en blanco.
Jeff Schaller

No estoy seguro de lo que dice @Jeff. Mis observaciones con respecto a este comando son (1) no funciona si actualmente está en una línea en blanco y (2) de lo contrario, elimina el carácter debajo del cursor.
Scott

Hablo mal rde hecho reemplaza al personaje actual. Todavía te lleva al modo de comando.
Jeff Schaller

Convenido. Esto es una limitación: debe hacerse en una línea no vacía + en un espacio en blanco antes de la línea. No pensé en esto. Gracias.
Akhilesh Siddhanti
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.