"Joe's own editor" does not come naturally to me. How do I change to using nano or vim?
I've tried
export EDITOR=nano
but it doesn't seem to be respected. I'd like visudo
to respect this as well.
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityTo change the default editor at the system level:
sudo update-alternatives --config editor
and then follow the onscreen prompts.
update-alternatives --install /usr/bin/editor editor /usr/bin/geany 10
Feb 6, 2015 at 5:25
The way to change the default editor for your account is to set the EDITOR
environment variable. If that doesn't work for you, you've done something unusual. Check that you haven't also defined VISUAL
, or if you have, give the two variables the same value (see VISUAL vs. EDITOR – what’s the difference?). Add these lines to your ~/.profile
(note: not to ~/.bashrc
):
EDITOR=nano
VISUAL=$EDITOR
export EDITOR VISUAL
Under the Debian policy, all programs are supposed to support EDITOR
and VISUAL
to set the default editor.
Under Debian and derivatives, you can use the alternatives mechanism to set the system-wide default editor, as mentioned by Steve Robillard: run update-alternatives --config editor
as root.
editor
is not one of those commands. :/ stackoverflow.com/a/73307112/3196753
editor
is the default to use when EDITOR
and VISUAL
are unset. There's a separate command which checks EDITOR
and VISUAL
, called sensible-editor
. See the link for “Debian policy”.
Aug 10, 2022 at 13:49
The solution mentioned above works, but it isn't scriptable. If you want to do this in a scriptable (non-interactive) fashion, you should use --set:
# update-alternatives --set editor /usr/bin/vim.basic
You can get a list of the choices with:
$ update-alternatives --list editor
I came across the very same issue, however setting it via update-alternatives did not quite do the trick on a Raspbian Buster (10.2). Although I set vim.basic as my default editor (manually using update-alternatives --config editor), it had only a priority 30, while nano had a priority of 40.
root@rsyslog:~/scripts# update-alternatives --config editor
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 15 manual mode
Press <enter> to keep the current choice[*], or type selection number:
I started poking around in the usual profile- and dot-files and came accross the following one:
root@rsyslog:~/scripts# cat /root/.selected_editor
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/bin/nano"
root@rsyslog:~/scripts#
After setting vim.basic via /usr/bin/select-editor, the file contained vim.basic:
root@rsyslog:~/scripts# /usr/bin/select-editor
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 2
root@rsyslog:~/scripts# cat /root/.selected_editor
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"
root@rsyslog:~/scripts#
Upon now I could do crontab -e with VIM again :).
EDITOR
each time you start the shell. Try this:echo "export EDITOR=nano" >> ~/.bashrc
.~/.bashrc
, to~/.profile
. See Alternative to .bashrc