Cómo insertar texto al comienzo de una selección de varias líneas en vi/Vim
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?
- Presione Escpara ingresar al 'modo de comando'
- Utilice Ctrl+ Vpara ingresar al modo de bloqueo visual
- Mueva Up/ Downpara seleccionar las columnas de texto en las líneas que desea comentar.
- Luego presiona Shift+ iy escribe el texto que deseas insertar.
- 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.
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.
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
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ó.