How to change visudo editor from nano to vim? [duplicate]
When I use visudo
, it always opens it with nano
editor. How to change the editor to vim?
Type sudo update-alternatives --config editor
You will get a text like below.
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number: 3
Find vim.basic
or vim.tiny
selection number. Type it and press enter. Next time when you open visudo
your editor will be vim
If you want just to make your user use by default a different editor, add
export EDITOR=vim;
in your .profile
(or wherever you keep your startup environment if using a shell different from bash). Log out, log in, check that the variable is set:
[romano:~] % env | grep EDI
EDITOR=vim
and now all the programs that call an editor (and are well written) will default to vim
for your user.
As noticed by @EliahKagan (thanks!) in the comment, this will not work for visudo
: since you are supposed to call it using sudo
, when you do
sudo visudo
the sudo
command will sanitize (read: delete) most environment variables before rising privileges --- and it's a good thing it does. So the change will not percolate to visudo
. To still have it working, you have to call it like:
sudo EDITOR=vim visudo
Finally, as hinted here, you can also add a line to your /etc/sudoers
file near the top that reads:
Defaults editor=/usr/bin/vim
A word of warning: when modifying your sudoers
configuration, keep a terminal open with a root shell in it (with sudo -i
). You never know, and you can easily get locked out of root.