Llevo usando nano desde que empecé a trastear con Linux. En aquella época, un servidor sin interfaz gráfica significaba que tenías dos opciones para modificar un archivo de configuración: aprender vim o salir corriendo. Yo no salí corriendo, pero reconozco que vim y yo no nos llevamos bien hasta mucho después. Así que nano fue mi refugio. Y durante años, lo traté como lo que parecía: un editor simple, funcional, sin pretensiones. Abrías un archivo, editabas cuatro líneas, Ctrl+O, Ctrl+X, y a otra cosa.
Sin embargo, hace un par de semanas me topé con un problema tonto. Estaba editando el archivo de configuración de Nginx en un servidor, y necesitaba copiar un bloque entero al portapapeles de mi máquina local. Lo normal habría sido seleccionar con el ratón, pero la conexión SSH era lenta y el terminal no respondía bien. Ahí fue cuando recordé que nano 8.7 había añadido soporte para OSC 52. Me puse a investigar, revisé el changelog de la versión 9.1, y me di cuenta de que nano había cambiado mucho más de lo que imaginaba. Scroll horizontal suave, modern bindings al estilo de los editores gráficos, string binds que permiten ejecutar secuencias de comandos, modo sin distracciones… Este ya no es el nano de 2017. Y merece una revisión en condiciones.
¿Qué es GNU nano?
GNU nano es un editor de texto minimalista que funciona en la terminal. Lo creó Chris Allegretta en 1999 como un clon libre de Pico, el editor del cliente de correo Pine. Desde entonces, y después de un breve período fuera del proyecto GNU, ha vuelto a casa para quedarse. Hoy lo mantiene Benno Schulenberg, que lleva años puliendo cada detalle con una paciencia que solo tienen los grandes desarrolladores.
A diferencia de vim o emacs, nano no pretende ser un entorno de desarrollo integrado dentro de la terminal. Su filosofía es otra: estar ahí cuando lo necesites, funcionar sin que tengas que leer un manual de 500 páginas, y permitirte hacer el trabajo sin interponerse en tu camino.
| Métrica / Feature | Detalles |
|---|---|
| Versión actual | 9.1 (junio 2026) |
| Nombre en clave | “met een hongerig paard aan ons been” (neerlandés) |
| Licencia | GPL-3.0-or-later |
| Creador | Chris Allegretta (1999) |
| Mantenedor | Benno Schulenberg |
| Lenguaje | C |
| SOs | Linux, macOS, Windows, BSD |
Por qué nano sigue siendo relevante en 2026
Vale, hay editores más modernos. Micro, Helix, Neovim… Cada uno tiene su público y sus virtudes. Pero nano tiene algo que ninguno de ellos puede igualar: ubicuidad.
Está instalado por defecto en prácticamente todas las distribuciones Linux. En servidores, en contenedores Docker, en sistemas embebidos, en routers con OpenWrt. Cuando haces SSH a una máquina que no has tocado en tu vida, nano está ahí. No tienes que instalarlo, no tienes que configurarlo, no tienes que aprender su ecosistema de plugins. Simplemente funciona.
Y eso, en 2026, sigue siendo un argumento de peso. No importa si el servidor corre Debian 12, Alpine Linux, o una distribución minimalista de las que ocupan 50 MB. Nano está ahí. Y no solo en servidores: los contenedores Docker más ligeros suelen incluir nano, los sistemas embebidos como Raspberry Pi OS lo traen por defecto, y hasta en entornos BSD lo encuentras sin tener que mover un dedo.
Curva de aprendizaje mínima
Si sabes usar un editor de texto gráfico, ya sabes usar nano. Los atajos básicos son intuitivos: Ctrl+O guarda, Ctrl+X sale, Ctrl+K corta, Ctrl+U pega. No hay modos, no hay que acordarse de si estás en modo inserción o modo normal. Abres el archivo, escribes, cierras. Punto.
Esto lo convierte en la opción ideal para administradores de sistemas que tocan muchos servidores, para desarrolladores que necesitan editar un archivo de configuración rápido, o para cualquier persona que no quiera o no pueda dedicar horas a aprender un editor.
Además, si alguna vez te quedas bloqueado, Ctrl+G abre la ayuda integrada. No necesitas conexión a internet, no necesitas buscar en Stack Overflow. La ayuda está ahí, en pantalla, explicando cada atajo. Es un detalle que parece menor, pero cuando estás en un servidor sin acceso a internet y necesitas recordar cómo se hace una búsqueda y reemplazo, te alegra saber que la ayuda está a un Ctrl+G de distancia.
El modo sin distracciones (–zero)
Desde la versión 6.0, nano incluye el modo --zero. Con esta opción, las barras de título, estado y ayuda desaparecen por completo. Solo ves el texto, en toda la pantalla. Es perfecto para cuando estás escribiendo y no quieres distracciones.
Puedes activarlo al arrancar:
nano --zero archivo.txt
O alternarlo sobre la marcha con Alt+Z. Te aseguro que una vez que pruebas a escribir con el modo zero, cuesta volver atrás.
Los modern bindings que cambiaron las reglas del juego
Esto es lo que más me ha sorprendido. Desde la versión 8.0, nano soporta modern bindings con la opción --modernbindings (o -/). La idea es que los atajos se parezcan a los de cualquier editor gráfico moderno:
- Ctrl+Q para salir
- Ctrl+X para cortar
- Ctrl+C para copiar
- Ctrl+V para pegar
- Ctrl+Z para deshacer
- Ctrl+Y para rehacer
- Ctrl+O para abrir archivo
- Ctrl+W para escribir (guardar como)
Si vienes de cualquier editor gráfico, estos atajos te resultarán naturales. No hace falta que te aprendas una combinación nueva para cada acción.
Además, si creas un symlink al binario de nano que empiece por “e” (por ejemplo, editor), los modern bindings se activan automáticamente:
ln -s /usr/bin/nano ~/bin/editor nano archivo.txt # Con modern bindings si el binario es "editor"
Esto es especialmente útil si quieres mantener el nano tradicional como binario principal y tener un acceso directo con los nuevos atajos sin tener que acordarte de pasar el flag cada vez.
Soporte OSC 52 para el portapapeles del sistema
Desde la versión 8.7, nano permite copiar texto al portapapeles del sistema mediante el protocolo OSC 52. Esto es enorme si trabajas en un servidor remoto a través de SSH y quieres copiar texto a tu máquina local sin tener que seleccionarlo con el ratón.
La configuración es sencilla. Añades esto a tu ~/.nanorc:
bind Sh-M-C "{execute}|| xsel -ib {enter}{undo}" main
Y con Shift+Alt+C copias el texto seleccionado al portapapeles de tu máquina local. No necesitas más herramientas, no necesitas trucos raros.
Instalación de GNU nano 9.1
Lo bueno de nano es que, en la mayoría de los casos, ya lo tienes instalado. Pero si por lo que sea no es así, o quieres asegurarte de tener la última versión, aquí tienes las instrucciones para cada plataforma.
GNU/Linux
En la mayoría de distribuciones, nano se instala con un solo comando. Eso sí, puede que el gestor de paquetes no tenga la versión más reciente. Las distribuciones estables como Ubuntu LTS o Debian Stable suelen llevar versiones un par de años por detrás.
Ubuntu / Debian
sudo apt update sudo apt install nano
Para la versión más reciente, puedes usar el PPA de nano (si está disponible para tu versión) o compilar desde fuente.
Fedora
sudo dnf install nano
Fedora suele llevar versiones bastante recientes. Si quieres la 9.1, puedes comprobar la versión disponible con dnf info nano.
Arch Linux
sudo pacman -S nano
Arch tiene la última versión prácticamente al día siguiente del lanzamiento. Si no es el caso, puedes usar el AUR.
openSUSE
sudo zypper install nano
Gentoo
emerge --ask app-editors/nano
macOS
En macOS no viene instalado por defecto. La forma más sencilla es con Homebrew:
brew install nano
Si prefieres MacPorts:
sudo port install nano
Windows
Sí, nano también funciona en Windows. Tienes varias opciones según tu estilo de vida:
winget (recomendado)
winget install GNU.Nano
Chocolatey
choco install nano
Scoop
scoop install nano
WSL (Windows Subsystem for Linux)
Si usas WSL, simplemente sigue las instrucciones de tu distribución Linux dentro del subsistema. Es la forma más natural si ya trabajas con Linux en Windows.
MSYS2 / Git Bash
Si usas Git Bash o MSYS2, puedes instalar nano con:
pacman -S nano
Cada opción tiene sus ventajas. winget es la más integrada con Windows 10 y 11, Chocolatey es la más veterana, y WSL te da el nano completo de Linux, con todas sus funcionalidades incluyendo el soporte OSC 52.
Compilar desde fuente
Si quieres la última versión y tu distribución no la tiene, compilar nano es sencillo. Te llevará menos de un minuto en un equipo moderno.
Aquí tienes los pasos:
# Descargar el código fuente wget https://www.nano-editor.org/dist/v9/nano-9.1.tar.xz # Descomprimir tar -xvf nano-9.1.tar.xz # Entrar al directorio cd nano-9.1 # Configurar ./configure --prefix=/usr # Compilar make # Instalar sudo make install
Necesitas tener instaladas las herramientas de compilación: build-essential en Ubuntu/Debian, base-devel en Arch, o Development Tools en Fedora.
Si quieres habilitar funcionalidades concretas, puedes pasar flags al ./configure:
# Habilitar soporte de ratón y colores 256 ./configure --prefix=/usr --enable-utf8 --enable-color
O si quieres un binario más pequeño y no necesitas el soporte nls (traducciones):
./configure --prefix=/usr --disable-nls
El proceso de compilación es limpio y no genera dependencias complicadas. Eso es otra de las virtudes de nano: está escrito en C puro, sin frameworks ni librerías externas más allá de las estándar del sistema.
Verificar la instalación
Una vez instalado, comprueba que tienes la versión correcta:
nano --version
Deberías ver algo como esto:
GNU nano, version 9.1 (C) 1999-2011, 2013-2026 Free Software Foundation, Inc. (C) 2014-2026 the contributors of nano
Configuración del archivo .nanorc
Aquí es donde nano se pone interesante. El archivo de configuración ~/.nanorc (o ~/.config/nano/nanorc si prefieres seguir el estándar XDG) te permite personalizar prácticamente todo.
Mi configuración personal
Esta es la configuración que uso yo en mi día a día. Llevo meses refinándola y estoy bastante contento con el resultado:
# Números de línea set linenumbers set numbercolor lightblack,white # Ajuste de línea suave set softwrap set atblanks # Auto-indentado set autoindent # Barra indicadora (scrollbar lateral) set indicator # Habilitar uso del ratón set mouse # Mostrar posición del cursor constantemente set constantshow # Tamaño de tabulación y conversión a espacios set tabsize 4 set tabstospaces # Historial y posición set historylog set positionlog # Mini barra de estado set minibar # Columna guía a 80 caracteres set guidestripe 80 # Colores del resaltado de búsqueda set spotlightcolor black,lightyellow # Colores de la interfaz set errorcolor bold,white,red set titlecolor bold,cyan set statuscolor white,blue set promptcolor white,green set selectedcolor lightwhite,blue # Incluir syntax highlighting include "/usr/share/nano/*.nanorc"
Explicación de las opciones clave
Voy a detallar las que considero más importantes para que sepas qué hace cada una.
set linenumbers muestra el número de línea a la izquierda. Combinado con set numbercolor lightblack,white, los números aparecen en gris claro sobre blanco si tu terminal tiene fondo claro. Si usas fondo oscuro, prueba con lightblack,black.
set softwrap y set atblanks son la pareja perfecta para archivos con líneas muy largas. El soft wrap parte las líneas visualmente sin insertar saltos de línea reales, y atblanks hace que el corte sea en los espacios en blanco en lugar de en medio de una palabra.
set indicator añade una barra de desplazamiento lateral. Es un detalle pequeño, pero cuando trabajas con archivos de cientos de líneas, agradeces saber en qué punto del documento estás sin tener que mirar el número de línea.
set minibar es una de mis opciones favoritas desde que la descubrieron. Reemplaza la barra de título y la barra de estado por una única barra minimalista en la parte inferior. Ocupa menos espacio y muestra la información esencial: nombre del archivo, posición del cursor y estado modificado/no modificado.
set guidestripe 80 añade una línea vertical en la columna 80. Si eres de los que sigue la convención de 80 columnas para el código, esto te ayuda a mantener el límite visualmente.
Syntax highlighting
Nano viene con unas 140 definiciones de sintaxis en /usr/share/nano/. Cubren desde Python, JavaScript y TypeScript hasta Markdown, YAML, JSON, Rust, Go, y muchísimos más.
Para activarlas, la línea mágica es:
include "/usr/share/nano/*.nanorc"
Si quieres ser más selectivo, puedes incluir solo las que uses:
include "/usr/share/nano/python.nanorc" include "/usr/share/nano/javascript.nanorc" include "/usr/share/nano/json.nanorc" include "/usr/share/nano/yaml.nanorc" include "/usr/share/nano/html.nanorc" include "/usr/share/nano/css.nanorc" include "/usr/share/nano/sh.nanorc" include "/usr/share/nano/markdown.nanorc"
Pero oye, con el comodín * vas más que sobrado. El rendimiento no se resiente por tenerlas todas cargadas.
Colores personalizados
Nano soporta 256 colores en terminales compatibles. Esta es una de las características que más ha mejorado con los años. Desde la versión 5.0 se añadieron 9 nuevos nombres de color, y desde la 6.0 se puede usar el formato #rgb con tres dígitos hexadecimales.
Los nombres de color disponibles son:
- Básicos: red, green, blue, magenta, yellow, cyan, white, black (con prefijo
lightpara la versión brillante) - Extendidos (desde 5.0): pink, purple, mauve, lagoon, mint, lime, peach, orange, latte, rosy, beet, plum, sea, sky, slate, teal, sage, brown, ocher, sand, tawny, brick, crimson
- Formato #rgb: tres dígitos hexadecimales, como
#f60para naranja o#3cfpara un azul claro - Modificadores:
bold,y/oitalic,antes del color, por ejemplobold,italic,white,blue
Un ejemplo de tema oscuro completo:
# Tema oscuro completo set titlecolor bold,white,black set statuscolor white,black set promptcolor white,black set selectedcolor lightwhite,blue set numbercolor lightblack,black set spotlightcolor black,lightyellow
Y si prefieres un tema claro, algo como esto funciona bien:
# Tema claro set titlecolor bold,black,white set statuscolor black,white set promptcolor black,white set selectedcolor lightwhite,blue set numbercolor lightblack,white set spotlightcolor black,lightyellow
Puedes encontrar más temas en repositorios de GitHub buscando “nano themes”. Hay versiones de Monokai, Solarized, Dracula, y prácticamente cualquier tema popular de editores de código.
Uso avanzado de GNU nano
Nano no es vim, pero tiene más potencia de la que parece a simple vista. Aquí van algunos trucos que uso a menudo.
Múltiples buffers
Por defecto, nano solo trabaja con un archivo a la vez. Puedes habilitar múltiples buffers con la opción set multibuffer en tu nanorc, o activarlo sobre la marcha con Alt+F.
Una vez activado, cada archivo que abras se coloca en un buffer independiente. Navegas entre ellos con Alt+< y Alt+> (desde nano 9.0, estos atajos hacen scroll lateral del viewport, así que si quieres cambiar de buffer, tendrás que reasignarlos).
Para reasignar los atajos de cambio de buffer, añade esto a tu nanorc:
bind M-< prevbuf main bind M-> nextbuf main
Anchors (marcadores)
Desde nano 5.0, puedes marcar líneas con Alt+“ para crear un anchor (marcador). Luego saltas al siguiente anchor con Alt+’. Desde nano 8.5, los anchors se guardan al cerrar el archivo y se restauran al reabrir, siempre que tengas activado set positionlog.
Esto es enormemente útil para archivos de configuración largos donde vuelves siempre a las mismas secciones. Yo lo uso para marcar las secciones de server en los archivos de configuración de Nginx, y para marcar los puntos donde sé que tengo que volver en archivos de documentación.
Macros
Nano permite grabar y reproducir macros desde la versión 2.9.0. La combinación es:
- Alt+: para empezar a grabar
- Alt+; para reproducir el macro
Puedes grabar secuencias de edición complejas y repetirlas cuantas veces quieras. Es un antes y un después para tareas repetitivas como añadir un prefijo a varias líneas o transformar bloques de texto.
Por ejemplo, imagina que tienes un archivo con 50 líneas y necesitas añadir # al principio de cada una para convertir un archivo de texto en comentarios. Grabas un macro que haga Inicio, escribe #, Abajo, y lo reproduces 49 veces. En menos de un minuto tienes el trabajo hecho.
Desde nano 9.0, si cancelas la grabación de un macro inmediatamente, no se borra el macro existente. Esto evita pérdidas accidentales cuando pulsas la combinación sin querer.
String binds (nano 7.0+)
Desde la versión 7.0, nano permite crear string binds que ejecutan secuencias de comandos. Las funciones se escriben entre llaves: {cut}, {paste}, {up}, {down}, {enter}, {undo}, etc. Esto permite automatizar tareas de formas que antes requerían herramientas externas.
Por ejemplo, para copiar al portapapeles del sistema usando OSC 52:
bind Sh-M-C "{execute}|| xsel -ib {enter}{undo}" main
Otro ejemplo útil: formatear un párrafo completo con un solo atajo:
bind M-J "{execute}|| fmt -w 72 {enter}{undo}" main
O si quieres un atajo para insertar la fecha y hora actual:
bind M-D "{execute}|| date '+%Y-%m-%d %H:%M' {enter}{undo}" main
Las posibilidades son enormes. Puedes ejecutar cualquier comando del sistema y capturar su salida dentro del archivo que estás editando.
nano como editor por defecto de git
Si usas nano para los mensajes de commit de git, esta configuración te vendrá bien:
git config --global core.editor "nano --guide=74 --nohelp +1"
Esto abre nano con la guía a 74 columnas, sin las líneas de ayuda, y situado en la primera línea.
Variables de entorno EDITOR y VISUAL
Para que nano sea el editor por defecto del sistema:
export EDITOR=nano export VISUAL=nano
Puedes añadirlo a tu ~/.bashrc o ~/.zshrc para que sea permanente.
Abrir un archivo en una línea específica
Desde nano 8.0, puedes abrir un archivo directamente en la línea que te interesa:
nano archivo.txt:42
Necesitas tener activado set colonparsing en tu nanorc o pasar --colonparsing en la línea de comandos.
Pros y contras de GNU nano
Voy a ser honesto. Nano no es perfecto, y dependiendo de lo que necesites, puede que no sea la mejor opción. Aquí tienes mi análisis.
Pros
- Ubicuidad absoluta. Está en todas partes. En servidores, contenedores, sistemas embebidos, routers. No necesitas instalarlo, no necesitas permisos especiales, no necesitas dependencias.
- Curva de aprendizaje mínima. Abres y escribes. Sin modos, sin conceptos previos, sin manuales de 500 páginas.
- Modern bindings desde 8.0. Ctrl+C para copiar, Ctrl+V para pegar, Ctrl+Z para deshacer. Como en cualquier editor gráfico.
- Modo sin distracciones (–zero). Perfecto para escribir sin interrupciones visuales. Ideal para tomar notas rápidas o redactar.
- Soporte OSC 52. Copiar al portapapeles del sistema desde SSH. Esto es oro puro para administradores de sistemas.
- Syntax highlighting para 140 lenguajes. Suficiente para la mayoría de los casos de uso.
- Ligero y rápido. Compila en segundos, ocupa menos de 1 MB. No consume recursos ni ralentiza el sistema.
- Configurable vía nanorc. Sin necesidad de aprender un lenguaje de scripting. Solo opciones en un archivo de texto plano.
- Estable y maduro. 27 años de desarrollo. Los bugs son raros y se corrigen rápido.
Contras
- Sin plugins. No es extensible como vim o emacs. Lo que ves es lo que hay, y no puedes añadir funcionalidades nuevas.
- Sin splits o pestañas. No puedes tener dos archivos lado a lado en la misma ventana. Necesitas abrir múltiples terminales.
- Soporte de ratón limitado. Funciona, pero no esperes la fluidez de un editor gráfico. Es más un parche que una funcionalidad pulida.
- Sin tree view de archivos. No hay explorador de proyectos integrado. Para eso necesitas ranger, lf o类似。
- Funcionalidades avanzadas limitadas. No tiene refactorización, linting integrado, ni LSP. No es un IDE.
- Las macros son básicas. No soportan condicionales ni bucles. Son secuencias lineales de acciones.
- El coloreado sintáctico es básico. No usa tree-sitter, así que el resaltado no es tan preciso como en Helix o Neovim.
- Sin editor colaborativo. No hay integración nativa con herramientas como tmux para edición compartida.
Como ves, los pros son de peso si lo que necesitas es un editor rápido y fiable. Los contras aparecen cuando intentas usar nano para todo, incluido el desarrollo de software complejo. Y ahí es donde debes preguntarte: ¿para qué necesito realmente un editor de terminal?
Alternativas a nano en 2026
Si después de leer esto crees que nano se te queda corto, aquí tienes las alternativas más populares:
| Editor | Curva aprendizaje | Peso | Ideal para |
|---|---|---|---|
| GNU nano | Muy baja | ~1 MB | Principiantes, edición rápida, servidores |
| Vim | Alta | ~3 MB | Usuarios avanzados, devs experimentados |
| Neovim | Alta | ~5 MB | IDE ligero, extensible con Lua |
| Micro | Muy baja | ~10 MB | Ex-usuarios de nano que quieren más |
| Helix | Media | ~15 MB | Devs que quieren algo moderno y nativo |
| Emacs | Muy alta | ~50+ MB | El sistema operativo que también edita |
Micro (https://github.com/zyedidia/micro) es la alternativa más directa a nano. Tiene atajos tipo GUI, soporte de splits, plugins, y un sistema de temas. Está escrito en Go, es un único binario, y la experiencia de usuario es muy similar a la de un editor gráfico. Pero no está en los servidores por defecto, y ahí es donde nano gana por goleada. Si puedes instalarlo, micro es una opción fantástica, especialmente si vienes de Sublime Text o VS Code.
Helix (https://helix-editor.org/) es el editor moderno de moda. Escrito en Rust, con LSP integrado que funciona de serie, tree-sitter para el coloreado sintáctico preciso, y una filosofía de selección múltiple que recuerda a Kakoune. Pero tiene una curva de aprendizaje media y no está en los repositorios por defecto de la mayoría de las distribuciones.
Neovim es la evolución moderna de vim, con una arquitectura de plugins en Lua que permite construir un IDE completo dentro de la terminal. Si ya inviertes tiempo en aprender vim, Neovim es la opción más potente. Pero la inversión inicial es alta, y no todo el mundo tiene ese tiempo.
¿Merece la pena nano en 2026?
Si has llegado hasta aquí, seguramente te estarás preguntando si merece la pena seguir usando nano en 2026. Mi respuesta es: depende de lo que necesites.
Si eres administrador de sistemas, tocas servidores a diario, o simplemente quieres un editor que funcione siempre, en cualquier máquina, sin sorpresas, nano es tu herramienta. No hay nada más fiable, más ubicuo, más simple. Cuando estés en una consola de emergencia, en un contenedor Alpine sin nada más que lo básico, o en un servidor que no has tocado en dos años, nano estará ahí. Y con la configuración adecuada, será más que suficiente.
Si eres desarrollador y pasas ocho horas al día escribiendo código, puede que Helix o Neovim te den más rendimiento a largo plazo. Pero siempre, siempre, tendrás nano como plan de respaldo. Porque cuando hagas SSH a un servidor que no has tocado en dos años y necesites arreglar algo urgente, nano estará ahí.
Y con la versión 9.1, con su scroll horizontal suave, sus modern bindings, su soporte OSC 52, y su modo sin distracciones, nano demuestra que lo simple no está reñido con lo moderno. A veces, lo que necesitas no es un editor con 10.000 plugins, un ecosistema de paquetes, y una comunidad que discute sobre cuál es el gestor de plugins correcto. A veces, lo que necesitas es algo que simplemente funcione.
Y nano, desde 1999, ha funcionado siempre. 😊
Mi recomendación personal: instala la última versión, dedica diez minutos a configurar tu .nanorc con las opciones que te he mostrado, y dale una oportunidad. Puede que descubras que el editor simple de toda la vida tiene más miga de la que pensabas.
Más información,
- Web oficial de GNU nano
- Changelog oficial (NEWS)
- FAQ oficial de nano
- Manual completo de nano
- Man page de nanorc
- Cheatsheet de atajos de teclado
- Repositorio git oficial
- Wikipedia: GNU nano
- Descargas oficiales (source + distros)
- Syntaxes extra para nano
- Micro (alternativa moderna)
- Helix (alternativa moderna)
Excelente artículo, me gustó mucho