我正在编写一个程序,我需要实现在文本编辑器中打开特定文件。默认情况下,文件类型具有不同的关联(它与程序本身关联),因此调用xdg-open $file
不起作用。使用$EDITOR
是次优的,因为它通常包含终端文本编辑器,如果这是第一个偏好,我想打开一个 GUI 文本编辑器。也不清楚如何找到默认终端模拟器来打开终端$EDITOR
。
我可以使用 查询(可能是 GUI)编辑器xdg-mime query default text/plain
,它给了我一个.desktop
文件,但我不确定如何实际运行它,特别是因为它可能包含Terminal=true
它,然后再次引发一个问题,即弄清楚默认终端是什么.
澄清一下,该程序不是脚本或已经在终端中运行的东西。它是一个 GUI 应用程序,因此启动终端编辑器需要弄清楚默认终端是什么。
那么,在默认的(可能是 GUI)文本编辑器中以编程方式打开文件的最佳方式是什么?
*.desktop
您通过调用获得的文件xdg-mime query default text/plain
位于以下两个位置之一:所以你需要在那里寻找它,然后解析该
Exec=
行并传递所有参数运行它,例如:要确定 debian-like 发行版上的默认终端仿真器,您可以运行以下命令并类似地解析输出以获取路径:
或者只是尝试直接运行您需要的命令:
如果您需要使其与分发无关,则需要实现桌面环境猜测,因为它似乎取决于每个 DE 存储其配置的方式。您可能想查看xdg-terminal代码,它是负责运行默认终端的 xdg 实用程序包的一部分(但由于某种原因未分发)。