Editar archivos en el VPS: nano vs vim — cuál usar y cuándo
Comparación práctica de nano y vim para editar archivos de configuración en un VPS Linux. Comandos esenciales, atajos, ventajas y cuándo cambiar de uno al otro.
Editar archivos de configuración directamente en el servidor es una de las tareas más comunes en la administración de un VPS Linux — ajustar nginx, modificar /etc/hosts, editar variables de entorno, configurar SSH. Para quien recién empieza, la elección entre nano y vim define la experiencia: nano es amigable y se parece a un editor de texto común; vim es minimalista, modal y tiene fama de intimidante.
Este tutorial compara ambos editores en la práctica, muestra los comandos esenciales de cada uno y te ayuda a decidir cuál usar según el tipo de tarea. El objetivo es el sysadmin principiante o desarrollador que se conecta vía SSH al VPS y necesita editar archivos sin pánico — ya sea para ajustar una línea rápida o para manipular archivos grandes de forma eficiente.
Tiempo estimado: 15 minutos para leer y probar los comandos en un VPS de prueba. Si solo quieres saber cuál instalar ahora, ve directamente a “Cuándo usar nano vs vim”.
Requisitos previos
Necesitas un VPS Linux con Ubuntu 22.04 o 24.04 (también sirve Debian), acceso SSH con usuario sudo y una terminal capaz de mostrar caracteres UTF-8. Los comandos de instalación asumen apt — adáptalos a dnf o yum en RHEL/AlmaLinux/Rocky.
nano vim which nano | which vim $EDITOR / $VISUAL Antes de elegir, confirma lo que ya está instalado. En casi toda imagen oficial de Ubuntu, nano viene por defecto; vim suele venir en la variante “tiny” (sin resaltado de sintaxis). Para producción, conviene siempre instalar la versión completa del editor que vayas a usar para evitar sorpresas.
Comparación directa: nano vs vim
Ambos editores resuelven el mismo problema básico — editar archivos en la terminal — pero tienen filosofías opuestas. Esta tabla resume las diferencias que importan para la decisión.
| Característica | nano | vim |
|---|---|---|
| Curva de aprendizaje | Baja (5 minutos) | Alta (semanas hasta dominarlo) |
| Modal (modos de inserción y comando) | No | Sí (normal, insert, visual, command) |
| Atajos visibles en pantalla | Sí (el pie de página siempre los muestra) | No (hay que memorizarlos) |
| Macros y edición masiva | Limitado | Excelente (regex, grabación de macros) |
| Tamaño del binario | ~250 KB | ~3 MB (vim completo) |
| Salir sin guardar | Ctrl+X después N | Esc, después :q! |
| Resaltado de sintaxis por defecto | Razonable (10+ lenguajes) | Completo (200+ lenguajes) |
| Multi-buffer / split | No | Sí (:split, :vsplit) |
| Reabre en la última posición | No (sin config) | Sí (con viminfo) |
| Velocidad en archivos grandes | Lenta en archivos >10 MB | Rápida incluso en archivos >100 MB |
nano gana en accesibilidad inmediata: abres, editas, guardas y sales sin necesidad de consultar el manual. vim gana en productividad después de que dominas los atajos — operaciones como “cambiar la cadena X por Y en las próximas 50 líneas” o “borrar todo dentro de estas comillas” son una combinación de dos teclas.
Instalación y configuración básica
Antes de comparar el uso, asegúrate de que ambos estén instalados en tu VPS para que puedas probarlos.
Actualiza el índice de paquetes:
sudo apt updateEste comando lee los repositorios en /etc/apt/sources.list y descarga los metadatos actualizados — necesario antes de instalar cualquier paquete nuevo.
Instala nano (si aún no está instalado) y el vim completo:
sudo apt install -y nano vimEl paquete vim sustituye a vim-tiny automáticamente y activa el resaltado de sintaxis, el modo visual y la grabación de macros. Confirma con vim —version | head -1 — deberías ver “Vi IMproved” y versión 9.x o superior.
Define el editor por defecto del sistema (usado por comandos como crontab -e, git commit, visudo):
sudo update-alternatives --config editorElige el número correspondiente a tu preferido. Para configurarlo solo para tu usuario, agrega export EDITOR=nano (o vim) a tu ~/.bashrc y ejecuta source ~/.bashrc.
nano — flujo esencial
nano usa atajos visibles en el pie de página de la pantalla. El símbolo ^ significa Ctrl, y M significa Alt (Meta). Los comandos más usados:
Abre un archivo para editar:
nano /etc/nginx/sites-available/defaultSi el archivo no existe, nano lo crea al guardar. Para abrirlo como root cuando el archivo requiere permisos (caso de /etc, /var, etc), usa sudo nano. Editar como usuario común e intentar guardar da error de permiso.
Edita el contenido normalmente. Usa las flechas para navegar, escribe para insertar texto, Backspace para borrar. Atajos esenciales:
Ctrl+O Guardar (Write Out) — confirma el nombre del archivo con Enter
Ctrl+X Salir — pregunta si quieres guardar los cambios no grabados
Ctrl+W Buscar texto (Where) — Alt+W para buscar el siguiente
Ctrl+\ Sustituir (replace) — pide el texto viejo y el nuevo
Ctrl+K Cortar línea completa
Ctrl+U Pegar línea cortada
Ctrl+G Ayuda completa con todos los atajosPara seleccionar texto, usa Ctrl+^ (Ctrl+Shift+6) para marcar el inicio y muévete con las flechas — Ctrl+K corta la selección.
Guarda con Ctrl+O, confirma el nombre con Enter y sal con Ctrl+X. Si hay cambios no grabados, nano pregunta “Save modified buffer?” — responde Y para guardar o N para descartar.
Edita ~/.nanorc y agrega: set linenumbers, set autoindent, set tabsize 2, include /usr/share/nano/*.nanorc. Esto activa la numeración de líneas, la indentación automática, el tab de 2 espacios y el resaltado de sintaxis para todos los lenguajes soportados.
vim — flujo esencial
vim es modal: no escribes directamente en el archivo hasta entrar en el modo de inserción. Esa es la mayor fuente de confusión para los principiantes.
Abre un archivo:
vim /etc/ssh/sshd_configEntras en modo normal — cualquier letra escrita se convierte en comando, no en texto. Para insertar contenido, presiona i (insert).
Aprende los 4 modos básicos:
Esc Vuelve al modo normal (siempre comienza aquí en caso de duda)
i Insert — escribe texto en la posición del cursor
a Append — escribe texto después del cursor
o Open — crea nueva línea debajo y entra en insert
v Visual — selecciona texto (usa las flechas para expandir)
: Command-line — ingresa comandos (guardar, salir, buscar)Cuando estés en modo de inserción, el pie de página muestra — INSERT —. Sin eso, estás en modo normal y cada tecla es un comando.
Guarda y sal. Los comandos más críticos:
:w Guarda el archivo (write)
:q Sale (quit) — falla si hay cambios sin guardar
:wq Guarda y sale (la combinación más usada)
:x Igual a :wq pero solo escribe si hay cambios
:q! Sale forzado, descartando los cambios
ZZ Igual a :wq (en modo normal, sin :)Esc + :wq + Enter resuelve el 90% de los casos. :q! es la salida de emergencia cuando no sabes qué pasó y quieres descartar todo.
Edición eficiente — lo que hace potente a vim son las combinaciones de operador + movimiento:
dd Borra la línea completa
dw Borra desde la posición hasta el final de la palabra
d$ Borra hasta el final de la línea
yy Copia (yank) la línea
p Pega después del cursor
u Undo
Ctrl+R Redo
/texto Busca "texto" (n siguiente, N anterior)
:%s/a/b/g Sustituye "a" por "b" en todo el archivo
gg Va a la primera línea
G Va a la última línea
:42 Va a la línea 42La regla de vim: comando + movimiento. d3w borra 3 palabras. y$ copia hasta el final de la línea. Estos patrones compuestos son los que ahorran tiempo en archivos grandes.
Antes de editar archivos críticos como /etc/ssh/sshd_config o /etc/fstab, haz backup: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. Si la configuración se rompe, restauras el backup y evitas perder el acceso al VPS. Vale especialmente para SSH — configuración errónea + reboot = servidor inaccesible.
Cuándo usar nano vs vim
No existe “mejor” — existe mejor para el contexto. Criterios prácticos:
Usa nano cuando:
- La tarea es editar 1-3 líneas en un archivo de configuración
- Solo vas a modificar el archivo una vez y no volverás pronto
- Estás en un servidor al que accedes raramente
- Quieres evitar el riesgo de cometer un error de modo y corromper el archivo
- Estás pegando snippets de tutoriales sin necesidad de formatear
Usa vim cuando:
- Vas a editar archivos con frecuencia (admin diario)
- Trabajas con archivos grandes (logs, dumps SQL, configs largas)
- Necesitas hacer ediciones masivas (sustituir regex en todas las líneas)
- Ya trabajas con vim en tu escritorio y quieres consistencia
- El servidor no tiene nano (algunos contenedores Alpine solo traen vi/vim)
Un patrón común: usar nano durante los primeros meses de admin del VPS, y migrar a vim cuando empieces a sentir que nano es lento para operaciones repetitivas. No hay vergüenza en quedarse con nano — mucha gente experimentada lo prefiere por simplicidad.
Verificación
Para confirmar que tu configuración está lista, prueba ambos editores en un archivo de prueba:
echo "linea 1" > ~/prueba.txt
nano ~/prueba.txt
# Agrega una linea, guarda con Ctrl+O, sal con Ctrl+X
cat ~/prueba.txt
# Debe mostrar 2 lineas
vim ~/prueba.txt
# Presiona i, agrega una linea, Esc, :wq, Enter
cat ~/prueba.txt
# Debe mostrar 3 lineas
rm ~/prueba.txt
Si ambos funcionaron y conseguiste guardar y salir de cada uno, tu VPS está listo para la administración diaria.
Resolución de problemas
”command not found: vim”
La imagen de tu VPS puede tener solo vi (versión Busybox) o ninguno de los dos. Ejecuta sudo apt install vim para resolverlo. En RHEL-like (AlmaLinux, Rocky), usa sudo dnf install vim-enhanced.
El archivo es “read-only” en vim
Abriste el archivo sin sudo y requiere privilegio. Sin perder el trabajo, guarda con :w !sudo tee % > /dev/null — este comando pasa el contenido del buffer a tee corriendo con sudo, grabando en el archivo. Después sal con :q!.
Nano ignora la indentación al pegar código
nano auto-indenta cada línea pegada si autoindent está activo, transformando código indentado en escalera. Antes de pegar, presiona Alt+I para deshabilitar auto-indent temporalmente. Pega el código y reactívalo con Alt+I nuevamente.
Vim muestra caracteres extraños como ^M al final de las líneas
El archivo fue guardado con line endings de Windows (CRLF). Conviértelo con :set fileformat=unix seguido de :w, o ejecuta dos2unix archivo.txt en la terminal antes de abrirlo.
Próximos pasos
Con el editor elegido y los comandos básicos en la cabeza, estos son los temas que normalmente aparecen en la secuencia de la administración de VPS:
- Configurar SSH key-based authentication — eliminar la contraseña de login
- Configurar el firewall UFW para cerrar puertos innecesarios
- Automatizar el backup de configs en /etc con rsync y cron
- Usar git para versionar archivos de configuración críticos
- Aprender tmux o screen para mantener sesiones SSH persistentes
Si estás configurando un VPS para producción y quieres infraestructura que cumpla lo que promete, un VPS Hostini ya viene con imágenes limpias de Ubuntu y Debian (con nano y vim disponibles), acceso root completo y consola KVM vía panel en caso de que cometas un error de configuración y pierdas SSH.
Preguntas frecuentes
¿Qué editor viene instalado por defecto en VPS Ubuntu y Debian?
Tanto nano como vim suelen venir preinstalados en Ubuntu y Debian modernos, pero vim normalmente viene en la versión mínima (vim-tiny) sin resaltado de sintaxis. Para tener la versión completa ejecuta sudo apt install vim. En imágenes minimal de cloud, a veces solo está presente nano — conviene verificar con which nano y which vim antes de asumir.
¿Cómo salir de vim sin guardar? Quedé atrapado en el editor.
Presiona Esc para asegurarte de estar en modo normal, luego escribe :q! y Enter. El signo de exclamación fuerza la salida descartando los cambios. Si quieres guardar antes de salir, usa :wq (write + quit). Este es el problema más clásico de quien abre vim por accidente — saber salir antes de aprender a editar.
¿Puedo configurar nano para mostrar números de línea y resaltado de sintaxis?
Sí. Edita ~/.nanorc y agrega set linenumbers y set autoindent. Para resaltado de sintaxis, nano ya viene con definiciones en /usr/share/nano/ — basta con incluir include /usr/share/nano/*.nanorc en tu .nanorc. No es tan potente como vim, pero cubre los casos comunes (bash, yaml, nginx, json).
vim se congela con Ctrl+S en la terminal. ¿Cómo lo destrabo?
Ctrl+S es el atajo XOFF de la terminal — pausa la salida y parece que vim se trabó. Presiona Ctrl+Q para reanudar (XON). Para evitar el problema, deshabilita el flow control agregando stty -ixon a tu ~/.bashrc — eso libera Ctrl+S para que vim lo use como atajo de guardar (si configuras el mapeo).
¿Cuál es la diferencia entre vim y vi?
vi es el editor original de Unix; vim (Vi IMproved) es la reimplementación moderna con features extras: múltiples ventanas, resaltado de sintaxis, undo ilimitado, plugins. En distros Linux modernas, vi normalmente es un symlink a vim. En sistemas más antiguos o contenedores minimal, vi puede ser una versión limitada de Busybox sin estas features.
¿Cómo copiar y pegar texto entre la terminal y nano/vim sin romper la indentación?
En nano, activa el modo paste con Alt+X antes de pegar (o deshabilita auto-indent con Esc+I). En vim, entra en modo paste con :set paste antes de pegar y deshabilítalo con :set nopaste después. Sin esto, el auto-indent del editor apila tabs/espacios en cada línea pegada, transformando código indentado en escalera.