如何更改默认的文本编辑器?

如何将我的默认文本编辑器从gedit更改为Emacs?

2这里有答案:https://askubuntu.com/questions/977538/16-04-crontab-e-editor-settings-python-syntax-highlighting-in-vim - 基本上你想要的是 export EDITOR=emacs - 或许将其添加到你的 .bashrc 文件中,这样它就会成为你的默认编辑器。 - SDsolar
12个回答

这是在我的情况下有效的方法:
  1. 右键点击一个文本文件。
  2. 选择“属性”(不是“打开方式...”)
  3. 点击“打开方式”选项卡。
  4. 选择你的新文本编辑器。
  5. 使用“设为默认”按钮标记所选的文本编辑器。
这个方法也适用于12.04和13.04版本。
@ 编辑:根据评论,这个方法适用于所有发行版直到20.04。

它在13.04上不起作用。在第三步之后,我看到很多选择,但没有我想要的编辑器....当然,理想情况下应该使用“添加”...但是这个选项是灰色的,无法选择。 - Marius Hofert
1在13.10上对我有效(将gedit替换为geany)。 - Alexander Malakhov
设置为默认在版本14上不显示。 - atilkan
也适用于15.04版本! - Kshitij Saraogi
也适用于14.04版本。 - DamBedEi
1也适用于16.04! - Dženan
2也适用于17.04版本。 - Jonas Dahlbæk
3这仅适用于每个文件类型的基础上。 - vstepaniuk
2同样适用于18.04版本。 - AlainD
18.04: ~/.config/mimeapps.list - Roman Grinyov
1我应该针对每种文件类型都这样做吗?有很多种文本文件。 - Moesio
1适用于20.04版本。 - vozman
1适用于20.04版本! - Arnold Roa
不行在20.10上... 哈哈,开玩笑的。还是可以用的。 - Jos
毫不意外,它在21.04版本上仍然能正常运行。 - cmr
这只回答了“如何更改特定文件类型的默认编辑器”,但没有回答如何“更改所有内容的默认文本编辑器”。请参考@kn_pavan的解决方案,那是一个很好的答案。 - Janos
@Janos 对我来说很好用。但你需要做两次。一次使用没有文件名中有点的文本文件,另一次使用带点的文本文件。 - Joooeey
适用于Mint 20.1。我使用了“以其他应用程序打开”而不是“属性”。 - Joooeey

要更改文件类型的默认文本编辑器,请尝试更新gnome-text-editor配置。
sudo update-alternatives --config gnome-text-editor

在某些情况下:
sudo update-alternatives --config editor

4有什么办法可以添加另一个选项呢?在我的情况下,我得到了以下结果:在链接组gnome-text-editor中只有一个替代选项(提供/usr/bin/gnome-text-editor):/usr/bin/gedit - 编辑:找到了如何做到这一点:sudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /path/to/executablesublime 100 在我的情况下,通过which subl输出的是/snap/bin/subl - tedi
1谢谢你的回答!我也是这样做的,首先添加了 sublsudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor $(which subl) 100。然后它已经被选为编辑器,就像上面的命令所确认的那样。 - Janos
1这是您需要确保在使用WSL时运行程序(使用wsl.exe <program>)时持续保留您的编辑器选择的方法。(特别是sudo update-alternatives --config editor - daviewales

我不使用DE,但对于我的配置来说,下一个命令是最好的:
/usr/bin/select-editor 
  • 它从所有已安装的编辑器中选择您的默认合理编辑器
  • 必须以当前用户身份运行
  • 您的系统必须有多个编辑器

手册页 select-editor


2+1 可在18.04版本中使用,不会影响其他用户,也不需要sudo权限。 - Roux
将EDITOR设置为vi,VISUAL设置为vi,将/etc/alternatives/editor或其他链接到vi之后,当运行类似virsh edit myvm的命令时,我仍然得到了名为“nano”的讨厌编辑器。以前我从未想过我能达到这种程度的自控力,但我在这里并没有发泄情绪。绝对没有发泄!!!我将nano重命名为nano.deleted,然后每次编辑东西时都会出现几行错误消息。select-editor并没有改变这一点。真正有帮助的是执行rm /usr/bin/sensible-editor,然后执行ln -s /usr/bin/vi /usr/bin/sensible-editor。生活美好了。 - berndbausch

一个更强大的解决方案是替换/usr/share/applications/defaults.list中的绑定。
sed -i 's/gedit/emacs/' /usr/share/applications/defaults.list

我不知道怎么回事,但是通过复制这个命令,我不小心清空了整个文件。对于那些对sed不太熟悉的人来说,我更喜欢在文本编辑器中使用查找替换(如此答案中所解释的)。 - metakermit
我用文本编辑器做了这个操作(使用查找替换功能,结果应该是一样的),然后退出登录再登录,但仍然在gedit中打开C++头文件(*.h)。 - Stefan Monov

右键点击一个文本文件,指向“打开方式”,它会显示子菜单中的其他编辑器。点击“其他应用程序...”。它会显示一个对话框,列出了一系列应用程序,选择Emacs,并确保选中了“记住此应用程序用于“纯文本文档”文件”的选项。点击“打开”。

1我确实尝试过这个,但是遇到了一个小问题 - 每当我在Nautilus中双击文件时,会弹出一个对话框,上面写着:“您要运行“tasks.css”还是显示其内容?“tasks.css”是一个可执行的文本文件。”然后有四个选项 - 在终端中运行、显示、取消、运行。(这种情况发生在每个文件上,不仅限于CSS文件。) - begtognen
5@begtognen: 不好意思,回复晚了。但是我一直在试图为此找到解决方法。刚发现一个 - 进入Nautlius首选项(编辑 > 首选项),选择“行为”标签,在“可执行文本文件”部分,选择单选按钮“打开时查看可执行文本文件”。这个方法解决了我的问题。 - Mussnoon
我也试过这个,但是Emacs没有出现在应用程序列表中。你有什么想法吗? - MTS
没有“记住此应用程序”。当过时时,您可能希望删除您的答案,或明确指定适用于哪些版本的Ubuntu。谢谢!:-) - Nicolas Raoul

如果你是在终端上工作,我建议你将以下内容添加到你的.bashrc文件(或者你喜欢的shell的配置文件)中:
export EDITOR=emacs
export VISUAL=emacs

5如果你是一个用户,没有sudo权限或者不想修改其他人的偏好设置,对这个答案点个赞吧。 - Loisaida Sam Sandberg
将以下内容添加到~/.bashrc文件中,并运行source ~/.bashrc以使其永久生效。 - Peaceful

你可以通过以下步骤为特定用户设置默认文本编辑器:# ~/.local/share/applications/mimeapps.list
[Default Applications]
text/plain=gedit.desktop

全局配置对所有用户生效,您需要修改/etc/gnome/defaults.list


sed -i 's/gedit/emacs/g' /etc/gnome/defaults.list

由于某种原因,我不得不使用xdg-mime

xdg-mime default org.gnome.gedit.desktop text/plain # For current user

你可以在系统范围内使用位于 /usr/share/applications/ 下的 .desktop 文件, 或者使用位于 ~/.local/share/applications/ 下的本地文件, 或者创建自己的文件
编辑: 还有一个有用的信息是,用户配置存储在 ~/.config/mimeapps.list 中,它会覆盖默认设置。 来源:https://stackoverflow.com/a/64850938/9085151

可能您的应用程序正在使用xdg-open打开存档文件。要查看是否是这种情况,请在终端中打开htop而不关闭已打开的文件,并在树中找到您打开的文件。 - R. W. Prado
@R.W.Prado 自从那时候,我已经将我的操作系统更换为Debian,所以我不再能够访问那个系统了。但现在我可以通过update-alternatives轻松地进行更改。 - etzl

在Ubuntu 20上,您需要将gnome-text-editor的替代链接从gedit更改为您想要的编辑器。然而,通常只会检测到一个这样的编辑器,所以update-alternatives --config不起作用;您需要添加您想要的编辑器。
例如,要添加notepadqq
sudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /usr/bin/notepadqq 50
sudo update-alternatives --config gnome-text-editor