我有一个名为“pom.xml”的文件,我想用 intellij ide 打开它,并.xml
用 打开其余文件gedit
。 可以吗?
答案1
不,因此这是不可能的。原因是默认应用程序与特定的 mime 类型相关联。反过来,mime 类型由文件扩展名定义。文件扩展名定义为文件名中最后一个点后面的任何字符。因此,只能根据文件扩展名关联应用程序。
解决方法
- 您可以创建一个 bash 脚本(在文件系统的任意位置),双击文件时会打开它。在“文件”的“首选项”中,“行为”选项卡中,您需要将“可执行文本文件”的选项更改为“运行它们”,才能使此功能正常工作。
- 您可以创建启动器在桌面或应用程序菜单中,在特定应用程序中打开特定文件。在最近的 Ubuntu 版本中,默认情况下不再可以
.desktop
直接从文件管理器运行文件 - 你可以给文件一个不同的扩展名,然后创建自己的 mime 类型并为其分配不同的默认应用程序。
答案2
是的,这是可能的。
正如 @vanadium 正确指出的那样,默认应用程序与 MIME 类型绑定。但是,这些 MIME 类型并不与文件扩展名绑定。有复杂的算法会考虑文件系统细节(例如常规文件或符号链接)、文件名(例如文件扩展名)和文件内容(二进制、ASCII 等),以确定文件的 MIME 类型。本质上,MIME 类型是文件内容的抽象描述。
所以现在问题归结为“我如何使其pom.xml
具有与任何其他 *.xml 不同的 MIME 类型”?
幸运的是,你可以定义自己的 mime 类型。以下说明来自这里:
假设您只想更改用户的行为,请创建以下文件:
~/.local/share/mime/packages/应用程序-xml-pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/xml-pom">
<comment>Maven Project Object Model</comment>
<icon name="application-xml"/>
<glob-deleteall/>
<glob pattern="pom.xml"/>
</mime-type>
</mime-info>
更新 mime 类型数据库:
update-mime-database ~/.local/share/mime
该 MIME 类型仅匹配名为 的文件pom.xml
。
现在,您可以在您最喜欢的文件管理器中将应用程序与新创建的 mime 类型关联起来。