Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
Vim es uno de los editores de texto más poderosos y veteranos que hay en el mundo de la informática y el equipamiento lógico libre. Dominar su funcionalidad básica facilita enormemente la edición de archivos de texto plano, principalmente archivos de configuración, constituyendo una habilidad esencial para cualquier administrador de sistemas.
Si bien su modelo modal de operación ―distinto al de los editores gráficos modernos― presenta una curva de aprendizaje elevada que puede resultar desafiante para usuarios novatos, la inversión en aprenderlo se traduce en una eficiencia y un control sobre el texto inigualables a largo plazo.
El siguiente conjunto de procedimientos guía al usuario a través de las operaciones fundamentales de Vim, proporcionando una base sólida para su uso productivo.
Por lo general, una versión básica de vi/vim se instala de modo predefinido en la mayoría de las distribuciones de GNU/Linux. Para obtener la experiencia completa con resaltado de sintaxis y todas las funcionalidades, es recomendable instalar la versión mejorada.
vim-enhanced: Versión mejorada de vim que añada color a la sintaxis, ayuda integrada y otras mejoras sustanciales. Instala el ejecutable /usr/bin/vim. Este es el paquete recomendado para seguir este manual.vim-minimal o vim-base: Versión muy básica y ligera. Suele instalar el ejecutable /bin/vi y carece de funciones avanzadas como el resaltado de búsquedas.gvim o vim-X11: Versión de vim con interfaz gráfica, que incluye menús y barra de herramientas. Instala /usr/bin/gvim.Si realizó una instalación mínima, instale la versión completa de vim ejecutando:
dnf -y install vim-enhanced
Nota para usuarios de ALDOS: Puede utilizar el mandato yum en lugar de dnf.
Los ejercicios a continuación se deben realizar como usuario regular. Cree un usuario sin privilegios para practicar:
useradd -m curso
Asigne una contraseña a este nuevo usuario:
passwd curso
Cambie a esta nueva identidad ejecutando:
su -l curso
Genere un nuevo documento ejecutando vim y utilizando como argumento holamundo.txt:
vim holamundo.txt
Lo anterior mostrará la interfaz inicial de vim:
+-----------------------------------------------------------+ |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |"holamundo.txt" [Archivo nuevo] 0,0-1 Todo| +-----------------------------------------------------------+
Pulse una vez la tecla i (modo Insertar) y observe el cambio en la línea de estado:
+-----------------------------------------------------------+ |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |-- INSERTAR -- 0,1 Todo| +-----------------------------------------------------------+
En la parte inferior aparece la palabra «INSERTAR». Esto significa que puede comenzar a insertar texto. Escriba la frase «Alcance Libre», pulse Enter y escriba de forma pro-positiva la frase «un vuen lugar donde comensar»:
+-----------------------------------------------------------+ |Alcance Libre | |un vuen lugar donde comensar | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |-- INSERTAR -- 2,1 Todo| +-----------------------------------------------------------+
Posicione el cursor (con las teclas de flecha) justo sobre la v de la palabra vuen y pulse la tecla R (Shift + r). Notará que ahora aparece el modo «REEMPLAZAR»:
+-----------------------------------------------------------+ |Alcance Libre | |un [v]uen lugar donde comensar | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |-- REEMPLAZAR -- 2,1 Todo| +-----------------------------------------------------------+
Pulse la tecla b y observe cómo se reemplaza la letra para quedar la palabra corregida como buen. Mueva el cursor y repita el procedimiento reemplazando la s por una z en comensar para que quede comenzar:
+-----------------------------------------------------------+ |Alcance Libre | |un buen lugar donde empe[z]ar | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |-- REEMPLAZAR -- 2,24 Todo| +-----------------------------------------------------------+
Pulse la tecla Esc para salir del modo Reemplazar. Inmediatamente pulse : (dos puntos) seguido de la letra w para guardar el archivo:
+-----------------------------------------------------------+ |Alcance Libre | |un buen lugar donde comenzar | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |:w | +-----------------------------------------------------------+
Pulse Enter. Un mensaje confirmará que el archivo ha sido guardado. Vuelva a pulsar : y escriba saveas adiosmundo.txt y pulse Enter para guardar una copia con otro nombre.
Pulse i para regresar al modo Insertar y añada las siguientes líneas:
+-----------------------------------------------------------+ |Alcance Libre | |un buen lugar donde comenzar | |Creo que el mundo es un lugar muy malo | |La gente que conozco es mala | |Mi vida ha sido muy mal[a] | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |-- INSERTAR -- 5,24 Todo| +-----------------------------------------------------------+
Pulse Esc y luego :%s/mal/buen/g. Este mandato reemplazará la cadena mal por buen en todo el archivo (%), de forma global (g):
+-----------------------------------------------------------+ |Alcance Libre | |un buen lugar donde comenzar | |Creo que el mundo es un lugar muy malo | |La gente que conozco es mala | |Mi vida ha sido muy mala | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |:%s/mal/buen/g | +-----------------------------------------------------------+
Pulse Enter. Observe cómo se realizó la sustitución en todo el texto:
+-----------------------------------------------------------+ |Alcance Libre | |un buen lugar donde comenzar | |Creo que el mundo es un lugar muy *buen*o | |La gente que conozco es *buen*a | |Mi vida ha sido muy *buen*a | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |3 sustituciones en 3 líneas 5,1 Todo| +-----------------------------------------------------------+
Posicione el cursor en la primera línea. Para copiar una línea, pulse yy. Para pegarla debajo, pulse p.
Para cortar (eliminar) una línea, pulse dd. La línea desaparece. Puede recuperarla pegándola en otro lugar con p.
Para cortar tres líneas a partir de la posición del cursor, pulse 3dd. Para pegar ese bloque de texto múltiples veces, pulse p las veces necesarias.
Nota: El resaltado de búsquedas requiere vim-enhanced. Con vim-minimal esta función está ausente.
Con el archivo abierto, pulse /buen y Enter para buscar esa cadena. Vim resaltará todas las coincidencias:
+-----------------------------------------------------------+ |Alcance Libre | |un *[b]uen* lugar donde comenzar | |Creo que el mundo es un lugar muy *buen*o | |Creo que el mundo es un lugar muy *buen*o | |La gente que conozco es *buen*a | |Mi vida ha sido muy *buen*a | |La gente que conozco es *buen*a | |Mi vida ha sido muy *buen*a | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |~ | |/buen | +-----------------------------------------------------------+
Para cancelar el resaltado de los resultados, pulse :nohl y Enter.
Finalmente, para salir guardando todos los cambios, pulse :x y Enter.
Una vez terminado el ejercicio, salga de la sesión del usuario de práctica:
exit
La siguiente tabla recopila los mandatos más útiles para comenzar a utilizar vim con soltura.
| Mandato | Acción | Notas |
|---|---|---|
| i | Modo Insertar antes del cursor. | La tecla Insert también funciona. |
| a | Modo Insertar después del cursor. | "Append". |
| I | Modo Insertar al inicio de la línea. | Shift + i. |
| A | Modo Insertar al final de la línea. | Shift + a. |
| o | Abre línea nueva debajo e inserta. | |
| R | Activa el modo Reemplazar. | Shift + r. Sobrescribe texto. |
| Esc | Sale del modo actual (Insertar/Reemplazar). | Vuelve al modo Normal. |
| x | Elimina el carácter bajo el cursor. | |
| dd | Corta la línea actual. | También la elimina. |
| yy | Copia ("yank") la línea actual. | |
| p | Pega después del cursor. | |
| /texto | Busca hacia adelante. | Usar n para siguiente coincidencia. |
| :w | Guarda el archivo. | "Write". |
| :q | Sale de vim. | Falla si hay cambios sin guardar. |
| :q! | Sale descartando cambios. | Fuerza la salida. |
| :wq o :x | Guarda y sale. | |
| :u | Deshace el último cambio. | |
| dG | Borra hasta el final del archivo. | d (delete) + G (ir al final). |
| :nohl | Desactiva el resaltado de búsqueda. | "No highlight". |
Este manual cubre sólo las operaciones fundamentales. Para dominar vim se recomienda encarecidamente utilizar la herramienta oficial de aprendizaje de vim. Ejecute el siguiente mandato en su terminal:
vimtutor
Este tutor interactivo, incluido en el paquete vim-enhanced, lo guiará a través de lecciones prácticas que cubren muchas más funcionalidades poderosas del editor, constituyendo el siguiente paso natural en el aprendizaje.