Cómo insertar texto al comienzo de una selección de varias líneas en vi/Vim

Resuelto Jordan Parmer asked hace 15 años • 14 respuestas

En Vim , ¿cómo inserto caracteres al principio de cada línea en una selección?

Por ejemplo, quiero comentar un bloque de código anteponiendo //al principio de cada línea, asumiendo que el sistema de comentarios de mi idioma no permite comentarios en bloque como /* */. ¿Cómo haría esto?

Jordan Parmer avatar Oct 31 '08 19:10 Jordan Parmer
Aceptado
  1. Presione Escpara ingresar al 'modo de comando'
  2. Utilice Ctrl+ Vpara ingresar al modo de bloqueo visual
  3. Mueva Up/ Downpara seleccionar las columnas de texto en las líneas que desea comentar.
  4. Luego presiona Shift+ iy escribe el texto que deseas insertar.
  5. Luego presione Esc, espere 1 segundo y el texto insertado aparecerá en cada línea.

Para obtener más información y leer, consulte " Insertar texto en varias líneas " en Vim Tips Wiki.

pixelbeat avatar Oct 31 '2008 13:10 pixelbeat

Esto reemplaza el comienzo de cada línea con "//":

:%s!^!//!

Esto reemplaza el comienzo de cada línea seleccionada (use el modo visual para seleccionar) con "//":

:'<,'>s!^!//!

Tenga en cuenta que gv(en modo normal) restaura la última selección visual, esto resulta útil de vez en cuando.

Tomalak avatar Oct 31 '2008 12:10 Tomalak

El patrón general para buscar y reemplazar es:

:s/search/replace/

Reemplaza la primera aparición de 'buscar' con 'reemplazar' para la línea actual

:s/search/replace/g

Reemplaza todas las apariciones de 'buscar' con 'reemplazar' para la línea actual, 'g' es la abreviatura de 'global'

Este comando reemplazará cada aparición de 'buscar' con 'reemplazar' solo para la línea actual. El % se utiliza para buscar en todo el archivo. Para confirmar cada reemplazo de forma interactiva, agregue una 'c' para confirmar:

:%s/search/replace/c

Confirmación interactiva reemplazando 'buscar' con 'reemplazar' para todo el archivo

En lugar del carácter %, puede utilizar un rango de números de línea (tenga en cuenta que el carácter '^' es un carácter de búsqueda especial para el inicio de la línea) :

:14,20s/^/#/

Inserta un carácter '#' al comienzo de las líneas 14-20

Si desea utilizar otro carácter de comentario (como //), cambie el delimitador de su comando:

:14,20s!^!//!

Inserta una secuencia de caracteres '//' al comienzo de las líneas 14-20

O siempre puedes escapar de los // caracteres como:

:14,20s/^/\/\//

Inserta una secuencia de caracteres '//' al comienzo de las líneas 14-20

Si no ve los números de línea en su editor, simplemente escriba lo siguiente:

:set nu
cyber-monk avatar Oct 06 '2010 18:10 cyber-monk

Otra forma que podría resultar más sencilla para los recién llegados:

 some█
 code
 here

Coloque el cursor en la primera línea, por ejemplo mediante

gg

y escriba lo siguiente para ingresar al modo de inserción y agregar su texto:

I / / Space

 // █some
 code
 here

Presione Escpara volver al modo de comando y use el dígrafo:

j . j .

 // some
 // code
 //█here

jes un comando de movimiento para bajar una línea y .repite el último comando de edición que realizó.

ninegrid avatar Apr 08 '2009 20:04 ninegrid