如何全局更改文件关联?

gedit默认设置为打开任何源文件。我已经查看了文件属性,并将默认应用程序更改为C和C++文件的VIM。
现在,无论我打开哪个源文件,无论是python文件、文本文件还是ruby文件,都需要进行此操作,因为gedit设置为打开所有这些文件。
我如何在不逐个设置“打开方式”的情况下将其更改为使用VIM打开?

@DJCrashdummy,如果你花时间阅读两个问题的讨论,就会知道这不是重复的。此外,这个问题已经被正确回答了三年多了。 - oblitum
@peper_chico请根据要求更新所选解决方案,因为这会给人带来误导。 - João Pimentel Ferreira
6个回答

似乎答案在这里here
实际上,最简单的方法是打开文件属性,进入“打开方式”选项卡,然后将其设置为该文件类型的默认程序。以下是图片示例:

enter image description here


1再次,就像我已经在o'rety的答案中评论过的一样:“当您想要一次设置多个文件类型或按MIME类型设置时,这并不容易”,而这个问题就是关于这个的。所选择的答案仍然是正确的。 - oblitum
啊,我的错误,我把它看成了“设置多个文件类型”,而不是一次性设置多个默认文件类型关联。我的错。 - chrismarx
这实际上是更自然的答案(从GUI中,无需手动编写文本文件或安装第三方软件)。不过,它需要一次只能输入一种类型的设置,因为Ubuntu在多个选择->属性中没有提供“打开方式”。 - Déjà vu
这个选项不允许我添加第三方应用程序,比如Adobe Reader。 - Colin 't Hart
1@ringø 我知道我晚了两年,但既然我仍然是被接受的答案,我需要说一下你关于这个是自然答案的评论并没有解决OP的问题,OP明确问到:“如何在不一个一个设置的情况下将所有源文件更改为使用VIM打开”。 - LimpingNinja
我按照指示将VLC设置为默认播放器,现在所有的视频都可以通过它来打开了。这个选项可能在过程中不太明显。 - Michael Durrant
1为什么这不是被选择的解决方案呢? - João Pimentel Ferreira

这个答案仅适用于Ubuntu 16.04或之前的版本;评论中提供了一个链接,可以下载到适用于Xenial版本的Ubuntu-Tweak。在较新的Ubuntu版本中,这种方法将不起作用,因为Ubuntu-Tweak已不再由作者支持。
评论中建议的Chris Marx的回答是正确的方法,但它不能解决管理问题-例如,为多个项目设置类型的需求。
注意:Ubuntu 16.04仍然是LTS版本,而Ubuntu 14.04尚未终止支持。
对你来说最简单的方法就是安装Ubuntu Tweak程序。

一旦你下载好了,只需打开它,切换到管理人员选项卡,然后在系统下选择文件类型管理器。进入这里后,选择文件类别文本,然后使用Shift点击和/或Control点击选择你想要的所有文件类型,然后点击右下角的编辑

这将允许您为所有文件设置多个MIME类型打开程序。

参见屏幕截图:

http://i.stack.imgur.com/BZtGN.jpg


谢谢这个工具,正是我在寻找易用性方面所需要的。非常不错的工具。 - oblitum
Ubuntu Tweak对13.10版本提供支持吗?我无法安装它。请帮忙。 - steoiatsl
@MinaMichael 嗯,我在13.10上使用它没有任何问题。 - oblitum
@pepper_chico 我遇到了一些问题,当我打开某些标签时,它们没有显示任何内容。我卸载了它,然后去软件中心重新安装,但是找不到它。 - steoiatsl
@MinaMichael 试试 synaptic,大多数时候我更喜欢它。你可能还需要使用一个 PPA,现在不记得我是否用过一个。 - oblitum
@pepper_chico 好的,我已经安装了 Synaptic,但是我不知道如何使用它。请帮忙一下。谢谢。 - steoiatsl
@MinaMichael 安装只需按照此答案提供的链接进行操作,我已使用了PPA安装程序。 - oblitum
下载链接指向Ubuntu Tweak。顺便说一下,“saucy”没有列出来!...我是在问我不能使用Synaptics。 - steoiatsl
对于那些仍然关注此答案的人,您可以在位置站点的博客上找到最新发布和信息。例如,对于"Saucy"版本:http://blog.ubuntu-tweak.com/2013/10/13/ubuntu-tweak-0-8-6-released-for-13-10-saucy.html - LimpingNinja
5注意:Ubuntu Tweak不再受支持,提供的链接中也没有包含所提到的工具。 - rohithpr
1对于任何寻找此软件的人来说,无论是否支持,GetDeb存储库中都有一个适用于Xenial版本的软件包:http://www.ubuntuupdates.org/package/getdeb_apps/xenial/apps/getdeb/ubuntu-tweak - z33k
1警告!当前版本的Tweaks(至少在Ubuntu 18.04上)不提供此功能。 - Parth Patel
1@LimpingNinja,你考虑过删除这个回答吗?因为它已经不再适用了(作为安慰,这种行为有徽章)。 - reducing activity
1@MateuszKonieczny 我已经考虑过这个问题,但我对删除答案的担忧在于16.04仍然得到支持(LTS),而14.04已经结束了支持但尚未到达EOL。由于有一个适用于16.04的软件包,我现在会添加一个标签 - 但我想知道是否有一个合理的答案适用于大于16.04的情况,并涵盖了这个实际场景。 - LimpingNinja

说到全球事务运作的机制,对整个系统而言,最重要的是
/usr/share/applications/defaults.list

这个文件保存了给定的mime类型和应该处理该类型文件的应用程序之间的关联。

如果你不知道一个文件的mime类型,只需使用以下命令:

mimetype

就像这样

mimetype img.jpg 
img.jpg: image/jpeg

文本文件,Python 脚本,网页通常都有自己的 MIME 类型。

2请在您的回答中更新路径。我之所以这样说是因为我在Lubuntu 13.10中看到/usr/share/applications/defaults.list是指向/etc/gnome/defaults.list的链接。 - user25656
2在Ubuntu 14.04中,更改/usr/share/gnome/applications/defaults.list对我没有任何影响。按建议更改/usr/share/applications/defaults.list就解决了问题。 - Marcus Junius Brutus
如何更改文件的MIME类型? - a06e
请确保在更改后退出登录以使更改生效。 - Andrew
据我所知,你无法更改文件的 MIME 类型,但你可以更改打开特定 MIME 类型的方式。 - reducing activity
@reducingactivity 这样做有点限制,比如说,我需要用文本编辑器打开纯文本文件,用Atom打开Asciidoc (.adoc) 文件,但它们都被识别为纯文本文件,所以如果我改变默认应用程序,它们将始终用文本编辑器或始终用Atom打开,这就迫使我每次都要选择正确的应用程序来打开它们... 默认情况下没有将它们映射到单独的MIME类型可能并不奇怪,但不能添加新的MIME类型... 唉! - Andrea Ligios

touch ~/.local/share/applications/defaults.list

将以下行添加到~/.local/share/applications/defaults.list文件中。
[Default Applications]
text/plain=gvim.desktop

现在你的机器上的每个文件都将默认使用gvim打开。

如果我想在Xterm中打开控制台vim,怎么办? - Adrian Keister
3在我的当前Ubuntu 14设置中,这似乎是mimeapps.list而不是defaults.list - glenatron
@glenatron Ubuntu 15与defaults.list兼容。 - laktak


当您想要一次设置多个文件类型或按MIME类型设置时,这并不容易。 - oblitum
楼主明确表示他们正在寻找一种不涉及“打开方式”(请参考他们问题的最后一行)的解决方案。 - Oliver
这个问题可以在我回答之后添加(请看日期)。 - z33k

从Unity Dash中转到“详细信息”,点击左侧窗格上的“默认应用程序”。根据您的偏好更改文件关联。无需额外安装,您可以在一个地方设置所有默认应用程序。

enter image description here


这个答案没有展示如何处理C++文件的方法,例如。 - LimpingNinja
谢谢你补充那个答案。(虽然只是为了完整起见。) - PythoNic
1如果你的电脑出现奇怪的行为,考虑删除.local/share/applications/中的一个文件。 - Natim