Funcionamiento del editor «vi» de Linux

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email
Hosting SSD

«vi» es el editor clásico de todos los sistemas UNIX que se utiliza en modo texto y todavía hoy se usa mucho, sobre todo, por parte de los administradores de sistemas.

Evidentemente, en Linux existen procesadores de texto en modo gráfico muy potentes como, por ejemplo, LibreOffice pero los administradores de sistemas suelen conectarse a los servidores mediante un cliente SSH en modo texto y necesitan un editor que trabaje de esta manera para crear scripts o mirar logs, por ejemplo. Por ese motivo, es fundamental que un administrador conozca vi muy bien.

A continuación, veremos algunos de los comandos de vi más útiles:

Edición de texto

i –> Prepara el editor para insertar texto en la posición del cursor donde estemos (antes del cursor).
I –> Inserta texto al principio de la línea.
a –> Inserta texto después del cursor.
A –> Inserta texto al final de la línea.
R –> Sobreescribir.
yy –> Copia la línea actual y la inserta en la siguiente.
+3 –> Vamos directamente a editar la línea número 3.

Rebajas
Crucial CT2000X8SSD9 X8-SSD portátil 2TB, de hasta 1050 MB/s, USB 3.2, Unidad de estado...
  • Rendimiento óptimo con velocidades de lectura de hasta 1050 MB/s
  • Funciona con Windows, Mac, iPad Pro, Chromebook, Android, Linux, PS4 y Xbox One con conectores USB-C 3.2 Gen2 y USB-A
  • Diseño hermoso y duradero, con un núcleo unibody de aluminio anodizado

Movimiento del cursor

Flechas –> Nos movemos en las diferentes direcciones.
h o BS –> Nos movemos hacia la izquierda.
l o SP –> Nos movemos hacia la derecha.
k o – –> Subimos una línea.
k o + –> Bajamos una línea.
$ –> Vamos al final de la línea.
0 –> Nos situamos en el principio de la línea.
11G –> Vamos a la línea número once.
Control-G –> Indica el número de línea actual.
w –> Vamos al comienzo de la palabra siguiente.
e –> Vamos al final de la siguiente palabra.
b –> Al principio de la palabra anterior.
^ –> Primera palabra de la línea.
H –> Parte superior de la pantalla.
L –> Parte inferior de la pantalla.
Control-F –> Avance de página.
Control-B –> Retroceso de página.

HP Pavilion 15-eg0018ns - Ordenador portátil de 15.6" Full HD (Intel Core i7-1165G7, 16GB...
  • Windows 10 Home 64-bit
  • Intel Core i7-1165G7 (12MB Cache)
  • 39.6 cm (15.6") Full HD 1920 x 1080 IPS

Borrar texto

x –> Borra el texto donde está situado el cursor.
p –> Escribe el carácter borrado.
X –> Borra los caracteres que están por detrás del cursor.
D –> Borra desde la posición del cursor hasta el final de línea.
dw –> Borra desde la posición del cursor hasta el final de la palabra.
d0 –> Borra desde la posición del cursor hasta el principio de la línea.

Buscar texto

/texto –> Busca texto hacia adelante.
?texto –> Busca texto hacia atrás.
n –> Repite la búsqueda.

Reemplazar texto

:%s/cadena_a_sustituir/nueva_cadena/g –> Sustituye una cadena de texto en todo el fichero. Para sustituir el carácter “/” utilizaremos la contrabarra delante, por ejemplo en una fecha:

02/28/09 –> Utilizaremos  :%s/02\/28\/09/otra_cadena/g

Otros comandos

J –> Unimos la siguiente línea a la actual.
u –> (undo) deshace el último cambio.
ESC –> Salimos del comando actual para ejecutar uno nuevo.
:q –> Salimos de vi si no hemos hecho cambios.
:q! –> Salimos de vi sin guardar cambios.
:w –> Guardamos los cambios.
:w fichero –> Guardamos el documento con el nombre del fichero indicado.
:wq –> Guardamos los cambios y salimos.

Automatizar comandos de vi

vi permite ejecutar sus propios comandos internos de manera automatizada.  A esto se le llama un script de vi. Es decir, podemos crear un fichero con todos los comandos de vi que queremos ejecutar.

vi -s comandosvi.vi Fichero.txt

Ejemplo:

  • Ponagmos por caso que tenemos el fichero “prueba.txt” con el siguiente contenido:


[[email protected] ~]$ cat prueba.txt
prueba1
prueba2
prueba3
prueba5
[[email protected] ~]$

  • Queremos insertar la cadena de texto “prueba4” entre “prueba3” y “prueba5” pero sin tener que editar el fichero manualmente, así que preparamos un script de vi que lo haga automáticamente:

[[email protected] ~]$ cat comandosvim.vim
:0
/^prueba3
A
prueba4

x!
[[email protected] ~]$

Lo que hace el fichero anterior es:

  • Vamos a la línea 0 del fichero.
  • Buscamos la cadena de texto “prueba3”.
  • Insertamos al final de la línea con el comando “A” de vi.
  • Escribimos “prueba4”.
  • Guardamos el fichero.

Ejemplo de ejecución:

[[email protected] ~]$ vim -s comandosvim.vim prueba.txt >/dev/null 2>&1
[[email protected] ~]$ cat prueba.txt
prueba1
prueba2
prueba3
prueba4
prueba5
[[email protected] ~]$

Te puede interesar

¿Te ha gustado? Compártelo

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email
About Author

Contenido Relacionado

Artículos Recientes

Deja un comentario