Este artículo fue publicado originalmente en go2linux.org el 5 de enero de 2009. El dominio ya no me pertenece, pero soy el autor original. Lo republico aquí en garron.me con correcciones y mejoras.
Introducción
Muchos comandos del sistema abren un editor de texto cuando lo necesitan: visudo, crontab -e, git commit, systemctl edit, apt changelog. En Debian y Ubuntu puedes controlar qué editor usan de varias formas.
Método 1: update-alternatives (para todo el sistema)
update-alternatives gestiona la alternativa editor a nivel de sistema, lo que afecta a todos los usuarios:
sudo update-alternatives --config editor
Verás una lista de editores instalados:
There are 4 choices for the alternative editor.
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/vim.basic 30 auto mode
1 /bin/nano -2 manual mode
2 /usr/bin/vim.basic 30 manual mode
3 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Escribe el número de tu editor preferido y pulsa Enter. El cambio se aplica inmediatamente a todos los usuarios.
Método 2: select-editor (por usuario, Ubuntu/Debian)
En Ubuntu y Debian, cada usuario puede establecer su propio editor preferido con select-editor:
select-editor
Esto escribe la elección en ~/.selected_editor. Comandos como crontab -e respetan este archivo antes de recurrir al valor predeterminado del sistema.
Método 3: variables de entorno EDITOR y VISUAL
Muchos programas — especialmente herramientas de terminal y Git — respetan las variables de entorno EDITOR y VISUAL en lugar de la alternativa del sistema.
Establecerlas para la sesión actual:
export EDITOR=nano
export VISUAL=nano
Para hacerlo permanente, añade esas líneas a tu ~/.bashrc (o ~/.zshrc para zsh):
echo 'export EDITOR=nano' >> ~/.bashrc
echo 'export VISUAL=nano' >> ~/.bashrc
source ~/.bashrc
Qué método usar
| Alcance | Método |
|---|---|
| Todos los usuarios, comandos del sistema (visudo, crontab) | sudo update-alternatives --config editor |
| Usuario actual, crontab -e en Ubuntu/Debian | select-editor |
| Usuario actual, Git, herramientas CLI | EDITOR / VISUAL en ~/.bashrc |
Para una experiencia consistente, configura tanto update-alternatives (o select-editor) como las variables de entorno — cubren programas diferentes.
Editores comunes y sus rutas
| Editor | Ruta |
|---|---|
| nano | /bin/nano |
| vim | /usr/bin/vim.basic o /usr/bin/vim |
| neovim | /usr/bin/nvim |
| emacs | /usr/bin/emacs |
| micro | /usr/bin/micro |