Change the Default Editor From Nano on Ubuntu Linux
Many of the utilities in Ubuntu Linux use a text editor to allow you to edit configuration options and files. An example of this is using the crontab command, which allows you to edit your cron jobs using the default editor.
It’s really easy to set the default editor using the update-alternatives command. Open up a terminal window and type in the following command:
sudo update-alternatives –config editor
Here’s an example of what you’ll see:
$ sudo update-alternatives –config editor
There are 5 alternatives which provide `editor’.
Selection Alternative
———————————————–
1 /usr/bin/vim
2 /bin/ed
*+ 3 /bin/nano
4 /usr/bin/vim.basic
5 /usr/bin/vim.tiny
Press enter to keep the default[*], or type selection number:
You can select the editor you want by just typing in the number. For example, if I want to change the default editor to vim, I would just hit the number 1.
You can test this out by typing in crontab -e to edit your cron file. You should see the editor that you chose, instead of the default.

Daily Email Updates
You can get our how-to articles in your inbox each day for free. Just enter your name and email below:


Thanks, I’m only starting to use a Linux OS and was just starting to get to grips with VIM and then having to learn another text editor for Unbuntu would have been an inconvenience.
Thanks for this information. I was getting rather fed-up with having to use nano as my default text editor when using crontab.
This doesn’t seem to work.
sudo update-alternatives -config editor
update-alternatives: unknown argument `-config’
Little tricks make life easier, thanks budy, very helpful.
this is the correct command
“update-alternatives –config editor”
with 2 dashes instead of one
I found this tip failed. It did nothing after eventually I had to find out the double dash –config thing myself.
It would also be much more sensible to put tips that rely on strict command line arguments, in a fixed width font to make them easier to read.
Thumbs down for this tip.
Does this comment engine change two dashes into one long? Otherwise, _this_ is the correct command:
“update-alternatives –config editor”
Followup:
*Sigh* it certainly did.. Nevermind; sorry for the double posting.
maybe write is as ‘update-alternatives – -config editor’
greetz all
When I run update-alternaitives, it only shows ed and nano. Is there anything I can do to to get it to show the other choices?
Thanks!
ronald:
Hehe. No, seriously not. “-” is generally a syntax for stdin/stout, can cause trouble..
Micah:
A first dumb question then: Have you even installed vim or any other alternatives? I think a full installation of e.g. vim or emacs is not bundled by default.
oh yeah – I’ve been using VIM ever since install. In fact, I didn’t know about this and set up VIM as the edior in my .bashrc.
Thanks
I have installed vim but it does not appears as an alternative. (It appears vim.basic and vim.tiny, but not vim). What con I do?
vim.basic = vim, so that’s what to choose. Before the installation there was only vim.tiny available.
user@Linux:~$ sudo update-alternatives –config editor
[sudo] password for user:
update-alternatives: unknown argument `–config’
user@Linux:~$ sudo “update-alternatives –config editor”
sudo: update-alternatives –config editor: command not found
user@Linux:~$ “update-alternatives –config editor”
bash: update-alternatives –config editor: command not found
user@Linux:~$ sudo ‘update-alternatives –config editor’
sudo: update-alternatives –config editor: command not found
user@Linux:~$
Ps:
user@Linux:~$ uname -a
Linux Linux 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux
Ubuntu: As discussed above – use two hyphens in “- -config”.
can i add gedit as default ?
alternatives seem like a really poor idea.
It gives you the command line ease of changing a very unimportant configuration issue, – the name you type to invoke an editor – which each user would be likely to do very infrequently, if ever.
The cost is making it quite obscure and complicated what is actually happening, and breaking what people out there already understand.
I suppose Stallman, Cox, Tovalds, Tridgell have all had to waste their time getting their heads around it – unless they just go on using the same install they’ve had for the last five years
There is a standard environment variable $EDITOR which is supposed to deal with this issue
I just tried to trace down where emacs directs to on my ubuntu 8. I think it goes through SIX levels of links. I don’t want this kind of (’scuse me) CRAP on my system. I want to be able to find an executable if there is a problem.
If it aint broke don’t fix it
Simpler is bettttttttttteeeeeerrrrrrrrrr – And don’t get me started about upstart
If I want to use emacs I’ll type ‘emacs’ and maybe alias it to ‘e’