When I use visudo, it always opens it with nano editor. How to change the editor to vim?
Asked
Active
Viewed 2.6e+01k times
2 Answers
320
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
dedunu
- 9,586
-
16
-
3http://askubuntu.com/questions/483308/what-are-the-differences-between-vim-basic-and-vim-tiny might answer you. check this also http://askubuntu.com/questions/104138/what-features-does-vim-tiny-have – dedunu May 12 '15 at 04:29
-
2
sudo EDITOR=vim visudois the way to go if you do not want to change the configuration permanently (see an another answer below). – Alexander Pozdneev Feb 13 '18 at 07:04 -
This solution is not correct for the original question, because only address the problem in the Ubuntu/Debian case. The response should be for every (or at least the majority) of the posix compliant Linux systems, and at least one the responses below is more close to this target. – Luis Vazquez Sep 13 '19 at 22:14
-
1Thanks for the answer. Ubuntu is so stupid. It's called VIsudo for a reason .... because it should use viM. Geez. Who wants to use lame nano.... – fourpastmidnight Oct 21 '24 at 20:38
79
You have to call it like:
sudo EDITOR=vim visudo
To make visudo always use vim, 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.
leif.gruenwoldt
- 188
Rmano
- 32,217
-
15Did you try this out? Running
sudo visudoafter settingEDITOR(orVISUAL) tovimand exporting it does not--and should not be expected to--result invisudousingviminstead ofnanoas the editor. By default,sudoresets most environment variables for the commands it runs. Only a handful are retained.EDITORandVISUALare not. Thus, afterexport EDITOR=vim,EDITORwill still not be set tovimfor thevisudoprocess launched bysudo visudo.EDITOR=vim sudo visudodoes the same thing and thus also doesn't work.sudo EDITOR=vim visudodoes work. – Eliah Kagan Oct 20 '14 at 09:56 -
...@EliahKagan, you are obviously right. I was thinking in deleting the answer, but your added information is valuable, so I tried to retain it somehow. – Rmano Oct 20 '14 at 10:06
-
@EliahKagan ...and I know from where come my confusion... look at http://unix.stackexchange.com/a/4409/52205 --- seems that, once upon a time,
sudodid pass the EDITOR variable. – Rmano Oct 20 '14 at 10:13 -
@Rmano it's not "once upon a time" exactly, but depends on what flags
visudowas compiled and what options are set insudoers. – muru Oct 20 '14 at 10:20 -
doesn't using the EDITOR variable create a security hole as in the man page of visudo?
Note that this can be a security hole since it allows the user to execute any program they wish simply by setting VISUAL or EDITOR.– evan54 Jan 09 '16 at 16:34 -
I give an extra point to this response because it doesn't only gives a solution using a tool only valid with some distribution, but instead dive into the problem and explain what's under the hood by giving different options to get the desired behaviour in the general Linux case. – Luis Vazquez Sep 13 '19 at 22:12
-
1yes, editing the sudoers file or in my case adding a file
/etc/sudoers.d/editorworked perfectly for changing the editor, thanks :) – xeruf Apr 05 '20 at 21:10
sudo apt purge nano. From this answer in the linked duplicate. – Nagev Sep 29 '21 at 12:50