The problem is not that it does not apply to nano
, it's that it does not apply to the shell:
Just set the VISUAL
environment variable:
export VISUAL=vim
Add this too ~/.bashrc to make it permanent.
As you seem to use vim in general, set both VISUAL
and EDITOR
:
export VISUAL="vim"
export EDITOR="$VISUAL"
or more POSIX-correct
VISUAL="vim" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR
I assume nano
was the value of one or both variables.
To make use of the editor in visudo actually, we need to handle that sudo
does not keep the environment variables by normally. The option -E
changes that.
sudo -E visudo
Without the -E
here, you would end up with a default of nano
again
The two variables where in use long before files named *.desktop
or mime*
even existed.
(And the impressive thing is: they were actually used as a common standard.)
See section ENVIRONMENT
in man visudo
:
VISUAL Invoked by visudo as the editor to use
EDITOR Used by visudo if VISUAL is not set
Permanent fix using update-alternatives
In Ubuntu, the system default seems to be set with sudo update-alternatives --config editor
. It shows a menu to change the current association to a vi of your choice.
man visudo
?sudo -E visudo
later in the answer, did you try that? The -E makessudo
not remove all env vars. It does because ubuntu has a lineDefaults env_reset
in/etc/sudoers
update-alternatives
I also added?