La respuesta corta: qué es Vi y cómo empezar a usarlo sin perderte
Vi es el editor de texto estándar de los sistemas Unix desde 1979. Casi todo Linux trae una versión instalada, por lo que es la herramienta que siempre funciona cuando necesitas editar un archivo de configuración o un script sin instalar nada.
Si eres principiante total y nunca has tocado un editor por terminal, empieza con Nano o Vim con tutor (vimtutor). Vi es funcional pero su interfaz puramente modal resulta confusa sin guía.
Si editas por SSH en servidores remotos —donde no hay interfaz gráfica—, necesitas Vi o Vim. Son los únicos editores que encuentras garantizados en prácticamente cualquier servidor Linux.
Si quieres Vim de verdad, instálalo: Vim (Vi IMproved) es el sucesor moderno con syntax highlighting, macros, plugins y ayuda integrada. Vi original está casi en desuso salvo en sistemas embebidos.
Vi y Vim comparten los mismos atajos y modos base; lo que aprendas en uno sirve en el otro.
Qué es Vi, Vim y en qué se diferencian de verdad
Vi fue creado por Bill Joy en 1976 para BSD Unix. Su diseño se basa en tres modos: comando, inserción y última línea. No tiene resaltado de sintaxis ni soporte de macros, pero su ejecución pesa menos de 1 MB y está presente en prácticamente todas las instalaciones de Linux y Unix.
Vim (Vi IMproved) fue desarrollado por Bram Moolenaar en 1991. Añadió: resaltado de sintaxis, autocompletado, macros grabables, soporte de plugins, paneles múltiples y una ayuda integrada completa. La versión actual estable es Vim 9.1 (enero de 2024).
En la práctica, Vim es 100 % compatible con los comandos de Vi. Un archivo editado en Vi se abre igual en Vim y viceversa. La diferencia está en las extensiones: Vim puede hacer todo lo que Vi hace, pero Vi no puede hacer lo que Vim añade.
En servidores modernos, lo que suele encontrarse preinstalado es vi, que en la mayoría de distribuciones es en realidad un enlace simbólico a Vim en modo compatible.
Qué necesitas antes de abrir Vi por primera vez
- Terminal funcional. Cualquier terminal Linux (GNOME Terminal, Konsole, xterm) o conexión SSH sirve. En Windows, usa WSL2 con una distribución Linux.
- Vi o Vim instalado. Prueba en tu terminal: escribe
vi --versionovim --version. Si aparece el número de versión, está listo. En Ubuntu, Vim se instala consudo apt install vim. En Fedora:sudo dnf install vim-enhanced. En Arch:sudo pacman -S vim. - Permisos de escritura. Si editas un archivo de sistema (por ejemplo,
/etc/fstab), necesitas permisos root:sudo vi /etc/fstab. Sin permisos, Vim mostrará[readonly]y no podrás guardar. - Comando de apertura. Para abrir un archivo existente:
vi archivo.txt. Para crear uno nuevo con ese nombre:vi archivo_nuevo.txt. Si el archivo no existe, Vim lo crea al guardar.
En distribuciones mínimas (Debian Server, Alpine), Vi viene preinstalado por defecto. En escritorios completos como Ubuntu Desktop, viene Vim.
Métodos para editar texto en Linux comparados
| Característica | Vi/Vim | Nano | Emacs |
|---|---|---|---|
| Curva de aprendizaje | Alta (modos no evidentes) | Baja (atajos mostrados en pantalla) | Muy alta (combinaciones C-x, M-x) |
| Modos de edición | 3 modales (comando, inserción, última línea) | Sin modos (todo es inserción) | Sin modos modales (teclas modificadoras) |
| Disponibilidad en servidores | Casi universal (vi preinstalado) | Frecuente, pero no garantizado | Raro en servidores, requiere instalación |
| Atajos visibles en pantalla | No (salvo barra inferior en Vim) | Sí (dos líneas de atajos siempre visibles) | Parcial (barra de estado con comandos) |
| Ideal para | Edición rápida en terminal, servidores, scripts | Principiantes que editan occasionalmente en terminal | Usuarios avanzados que quieren un entorno de desarrollo completo |
| Peso de instalación | ~3 MB (Vim), <1 MB (Vi) | ~1 MB | ~80 MB |
| Última versión estable | Vim 9.1 (2024) | Nano 8.0 (2024) | Emacs 29.4 (2024) |
Si solo necesitas editar un archivo rápido y estás en un servidor: Vi/Vim. Si eres nuevo y quieres algo más amigable: Nano. Si quieres un entorno completo de programación y no te importa aprender: Emacs.
Método 1: usar Vi con sus 3 modos (comando, inserción y última línea)
- Abre un archivo. Escribe
vi archivo.txten la terminal. Aparece el contenido del archivo o una pantalla vacía si es nuevo. - Estás en modo comando. El cursor se mueve por el texto pero no puedes escribir directamente. Las teclas realizan acciones (borrar, copiar, mover).
- Pasa a modo inserción. Pulsa i para insertar antes del cursor, a para insertar después, o para crear una línea nueva abajo o O para crear una arriba. Aparece
-- INSERTAR --o-- INSERT --en la parte inferior. - Escribe tu texto como en cualquier editor.
- Vuelve a modo comando. Pulsa Esc. Desaparece el indicador
-- INSERTAR --. - Guarda y sale. Pulsa : (aparece el cursor en la parte inferior), escribe
wy pulsa Intro para guardar. O escribewqpara guardar y salir. Para salir sin guardar:q!.
La limitación principal es que no puedes editar como en un editor normal: cada tecla tiene un significado diferente según el modo. Esto confunde al principio pero se vuelve rápido con práctica.
La combinación más usada: i → escribir → Esc → :wq → Intro.
Movimientos y navegación que te salvan tiempo
- h, j, k, l: izquierda, abajo, arriba, derecha (alternativas a las flechas)
- 0 (cero): inicio de línea; $: final de línea
- w: siguiente palabra; b: palabra anterior; b: fin de palabra
- 12G o :12: ir a la línea 12
- G: ir al final del archivo; gg: ir al principio
- Ctrl+f: página adelante; Ctrl+b: página atrás
:set nuactiva números de línea;:set nonulos desactiva:set pasteevita sangrado automático al pegar código
Búsqueda y reemplazo sin salir del terminal
- /texto: busca «texto» hacia adelante. Pulsa n para siguiente resultado, N para anterior.
- ?texto: busca hacia atrás.
- :%s/viejo/nuevo/g: reemplaza todas las ocurrencias de «viejo» por «nuevo» en todo el archivo.
- :%s/viejo/nuevo/gc: igual pero pide confirmación antes de cada reemplazo.
- :%s/viejo/nuevo/gi: reemplazo sin distinguir mayúsculas/minúsculas.
- Para saltar a una línea concreta: escribe el número y pulsa G (por ejemplo, 50G va a la línea 50).
Método 2: editar, copiar y deshacer como en Vi
- Borrar caracteres. En modo comando, pulsa x para borrar el carácter bajo el cursor.
- Borrar palabras. Pulsa dw para borrar desde el cursor hasta el inicio de la siguiente palabra.
- Borrar líneas. Pulsa dd para borrar toda la línea actual. 5dd borra 5 líneas.
- Copiar. Pulsa yy para copiar (yank) la línea actual. 3yy copia 3 líneas.
- Pegar. Pulsa p para pegar después del cursor, P para pegar antes.
- Deshacer. Pulsa u para deshacer la última acción. Ctrl+r rehace (en Vim; en Vi clásico, solo u y . para repetir).
- Repetir. Pulsa . (punto) para repetir la última acción de edición.
La limitación es que no hay portapapeles gráfico: copiar y pegar entre Vi y una ventana del navegador o del escritorio requiere herramientas externas como xclip o el registro de selección de X11.
Método 3: guardar, salir y recuperar si algo falla
- Guardar sin salir. Pulsa :, escribe
wy pulsa Intro. El archivo se guarda y sigues editando. - Guardar y salir. Pulsa :, escribe
wqy pulsa Intro. O simplemente pulsa ZZ (mayúsculas) en modo comando. - Salir sin guardar. Pulsa :, escribe
q!y pulsa Intro. Descarta todos los cambios. - Si se cierra la terminal sin guardar. Vim crea un archivo de intercambio (
.swp) con los cambios pendientes. Al reabrir el archivo, Vim te ofrece recuperarlo: pulsa R para restaurar. - Si hay un archivo
.swpantiguo. Vim mostrará un aviso. Elige D para borrar el swap antiguo (si el archivo se guardó correctamente) o R para recuperar. - Recuperación forzada. Si Vim no detecta el swap automáticamente, ejecuta
vi -r archivo.txtpara forzar la recuperación.
El riesgo real es perder cambios si cierras la terminal sin guardar y no hay swap (por ejemplo, si编辑as un archivo nuevo que nunca se guardó). Vim crea el swap después de la primera escritura, no al abrir.
Cuando no funciona: te quedas atrapado, no escribe o no guarda
No puedo escribir / el texto no aparece. Estás en modo comando, no en inserción. Pulsa i para entrar en modo inserción. Si aparece [readonly] en la parte inferior, el archivo es de solo lectura o no tienes permisos. Sal con :q! y ábrelo con sudo vi archivo.
No puedo salir de Vi. Estás en modo inserción o última línea. Pulsa Esc una o varias veces hasta que el indicador -- INSERTAR -- desaparezca. Luego escribe :q! y pulsa Intro.
El archivo tiene un swap existente. Vim te pregunta qué hacer. Si el archivo se guardó correctamente antes, elige D para borrar el swap. Si no estás seguro, elige R para recuperar los cambios pendientes y revisarlos antes de guardar.
Los atajos de teclado no funcionan como espero. Si estás en un terminal remoto (SSH),algunas teclas como Ctrl+B pueden estar capturadas por el cliente SSH o el multiplexor de terminal (tmux, screen). Comprueba la configuración de tu cliente.
Los números de línea no aparecen. Actívalos con :set nu. Para que permanezcan al abrir siempre, añade set nu al archivo ~/.vimrc.
La mayoría de problemas con Vi se resuelven con Esc + :q! + reabrir el archivo con los permisos correctos.
Fuentes
- YcombinatorAsk HN: Is it worth learning Vim in 2026? – Hacker Newsconsultado el 24/09/2026
- LinuxsecuritySUSE – Significant Security Patch for Vim Tackles Various Concernsconsultado el 24/09/2026
- WikipediaVi (text editor) – Wikipediaconsultado el 24/09/2026
- VipmVIPM 2026 Q1 – Developer Docsconsultado el 24/09/2026
- TenableRHEL 9 : vim (RHSA-2026:6619) – Tenableconsultado el 24/09/2026
