Use an editor of your choice for visudo and cron in Debian/Ubuntu

First, you need to have the following line, or a part of it in your sudoers file:

Defaults env_editor

Then, you can set VISUAL or EDITOR to set the default editor for visudo.

By default, visudo chooses vim as the editor, from the following symlinks:

/usr/bin/editor -> /etc/alternatives/editor
/etc/alternatives/editor -> /usr/bin/vim.tiny

So you can set /etc/alternatives/editor to another editor:

rm /etc/alternatives/editor
ln -s `which emacs` /etc/alternatives/editor

You can set env variables for that session:

export EDITOR="emacs"
export VISUAL="emacs"

You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.