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 |