How can I change my default text editor from gedit to Emacs?
12 Answers
Here is what worked in my case:
- Right click on a text file.
- Choose "Properties" (not "Open With...")
- Click on the "Open With" tab.
- Choose your new text editor.
- Mark chosen text editor using a button "Set as default".
This also works on 12.04 and 13.04.
Edit: based on comments it still works in 22.04.
- 2,235
-
It does not work on 13.04. After Step 3, I see a lot of choices, but not the editor I would like to have .... of course, the idea would be to use 'Add' ... but this is grayed out and can't be selected. Argh – mathlete May 23 '13 at 15:24
-
1
-
-
-
-
1
-
2
-
3
-
2
-
-
1Should I do it for each type of file? There lots of 'types' of text file. – Moesio Dec 06 '19 at 14:18
-
1
-
1
-
-
-
This only answers "how do I change default editor for a specific file type", but doesn't answer how to "change the default text editor for everything". See @kn_pavan's solution below for a good answer. – Janos Jan 21 '22 at 11:56
-
@Janos worked fine for me. But you have to do it twice. Once with a text file with no dot in the filename, and once with a text file with a dot. – Joooeey Aug 18 '22 at 07:20
-
Works on Mint 20.1. I went through "Open with" and "Open with other Application..." instead of "Properties" though. – Joooeey Aug 18 '22 at 07:21
-
-
1In Ubuntu 24, if the file is on Desktop the "Open with" option in context menu is replaced with "Open with other application" which does not allow to set the default program. Either use a file that is not on Desktop or first "Show in Files" from the context menu to visit the file. – MOON Jun 05 '24 at 12:16
To change default text editor across the file types, try updating gnome-text-editor configuration.
sudo update-alternatives --config gnome-text-editor
In some cases:
sudo update-alternatives --config editor
- 1,101
-
4How can someone add another option? In my case I get the following: There is only one alternative in link group gnome-text-editor (providing /usr/bin/gnome-text-editor): /usr/bin/gedit - EDIT: found how to do it:
sudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /path/to/executablesublime 100in my case/snap/bin/subloutoutted bywhich subl. – ttt Oct 21 '21 at 10:58 -
1Thanks for this answer! Same here, I added
sublfirst:sudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor $(which subl) 100. Then it was already selected as editor, as the above command then confirmed. – Janos Jan 21 '22 at 11:58 -
1This is the one you need to ensure your editor choice persists even when running programs using
wsl.exe <program>in WSL. (Specificallysudo update-alternatives --config editor) – daviewales Feb 19 '23 at 23:10
I don't use a DE, but for my configurations the next command is the best:
/usr/bin/select-editor
- it selects your default sensible-editor from all installed editors
- must run with current user
- you must have more than one editor in your system
-
2
-
After setting EDITOR to vi, VISUAL to vi, linking /etc/alternatives/editor or whatever to vi, I still got the pest named
nanoas the editor when running commands likevirsh edit myvm. Applying a level of self-control I would never have guessed I could reach, I am not venting here. NOT VENTING AT ALL!!!! I renamed nano to nano.deleted, then I got several lines of error messages whenever I edited something.select-editordidn't change that. What did help wasrm /usr/bin/sensible-editorfollowed byln -s /usr/bin/vi /usr/bin/sensible-editor. Life is good. – berndbausch May 27 '21 at 06:39
A more robust solution would be to replace the bindings in /usr/share/applications/defaults.list.
sed -i 's/gedit/emacs/' /usr/share/applications/defaults.list
- 143
- 344
-
I don't know how, but by copying this command I accidentally cleared the whole file. I would much prefer doing this in a text editor using find-replace (as explained in this answer) for those who are not too familiar with sed. – metakermit Apr 05 '13 at 22:37
-
I did this (in a text editor with find-replace, which should have the same result), then logged out and back in but still C++ header files (*.h) are opened in gedit. – Stefan Monov Dec 14 '16 at 15:06
Right click on a text file, point to "Open With" and it'll show other editors in a sub-menu. Click on "Other Application...". It'll show you a dialog with a list of applications, select Emacs and make sure the "Remember this application for "plain text document" file" option is checked. Click "Open".
- 5,236
-
1I did try this, but I'm having a bit of a problem - whenever I double-click on a file in Nautilus, I get a dialog box that says: "Do you want to run "tasks.css", or display its contents? "tasks.css" is an executable text file." And then there are four options - Run in Terminal, Display, Cancel, Run. (This happens with every file, not just CSS files.) – begtognen Nov 16 '10 at 12:05
-
5@begtognen: Sorry for the ultra-late reply. But I've been trying to find a solution for this myself. Just found one - go to Nautlius preferences (Edit > Preferences), select the "Behavior" tab and under the "Executable Text Files" section, select the radio button "View executable text files when they are opened". Fixed the issue for me. – Mussnoon Nov 22 '10 at 23:28
-
I tried this also, but Emacs doesn't appear in the list of applications. Any thoughts? – MTS Apr 01 '14 at 19:44
-
No "Remember this application" there. When outdated you might want to either delete your answer, or clearly specify for what versions of Ubuntu it works. Thanks! :-) – Nicolas Raoul Nov 21 '16 at 02:52
If you are working from the terminal then I would add the following to your .bashrc file (or the config file for your favorite shell):
export EDITOR=emacs
export VISUAL=emacs
- 3,077
-
5+1 for this answer. Particularly if you're a user and don't have
sudoor don't want to modify anyone else's preferences – Loisaida Sam Sandberg Dec 13 '19 at 15:01 -
Add these to
~/.bashrcand runsource ~/.bashrcto make this permanent. – Peaceful Feb 28 '23 at 10:17
You can set the default text editor for a specific user in # ~/.local/share/applications/mimeapps.list by:
[Default Applications]
text/plain=gedit.desktop
For global configuration for all users you have to modify the /etc/gnome/defaults.list
- 1,956
On Ubuntu 20, you need to change the gnome-text-editor alternatives link from gedit to the one you want. However, there usually is only one such editor detected so update-alternatives --config won't work; you'll have to add the editor you want.
E.g. to add notepadqq:
sudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /usr/bin/notepadqq 50
sudo update-alternatives --config gnome-text-editor
- 516
For some reason I had to use xdg-mime:
xdg-mime default org.gnome.gedit.desktop text/plain # For current user
you can use your system-wide .desktop files under /usr/share/applications/
or local files under ~/.local/share/applications/ or create your own.
edit:
It's also helpful to know that user configurations are stored in ~/.config/mimeapps.list which overrides the defaults.
source: https://stackoverflow.com/a/64850938/9085151
- 61
-
Probably your application is opening the archive with xdg-open. To see if it is the case open htop in terminal without closing the opened file and find your open file in the tree. – R. W. Prado Aug 26 '21 at 08:33
-
@R.W.Prado I've changed my OS to debian since then, so I don't have access to that system anymore. But now I can easily change it with update-alternatives. – etzl Aug 26 '21 at 10:53
If you would like to replace gedit with any other text editor for all file types, the easiest is to edit the defaults.list file located here:
/usr/share/applications/defaults.list
Just find and replace all gedit.desktop references with your own editor (in this case emacs.desktop).
You need root permissions to edit the file. So, just do:
sudo -H gedit /usr/share/applications/defaults.list
Save the file, close it and it's done.
export EDITOR=emacs- and perhaps add that to your.bashrcso it becomes your default. – SDsolar Nov 17 '17 at 21:24