我一直在尝试以 alacritty 作为默认值来执行 vim。我已经将 alacritty 设置为我的默认终端模拟器,并且在我的 vim.desktop 中我更改exec=vim %F
为exec=alacritty -e vim %F
. 问题是当我打开一个文件时,它首先在 gnome 终端中执行命令,然后在 alacritty 中启动 vim,问题是 gnome 终端保持打开状态。我也尝试过创建一个脚本:
#!/bin/bash
alacritty -e vim & disown | exit
这根本不起作用。我不知道还能做什么,我在网上找不到任何东西。提前致谢!
是否可以更改运行Exec=
命令的默认终端?这样一来,只要写Exec=vim %F
下来,它就可以轻快地运行
muru帮助我澄清了发生了什么,谢谢!问题是我的 .desktop 文件:
有过争论
Terminal=true
。它的作用是Exec=
在终端中执行命令,打开终端来执行此操作。如果您设置Terminal=false
这将阻止任何终端打开,它将只执行命令而不打开终端。我已经在 U&L 上发布了一个类似问题的答案
TL; DR -最
prepend_terminal_to_vector()
喜欢gnome-terminal
。创建一个包装脚本/usr/local/bin/gnome-terminal
,它根据接收到的内容调用实际的终端仿真器$#
$@
。编辑:这有时不起作用,我不知道当你打开 vim 时是什么在控制使用什么终端仿真器。
我刚刚找到了解决此问题的另一种解决方法:创建一个以
xterm
您命名的符号链接$PATH
到您自己的终端仿真器。我不能保证这对每个人都有效。这种变通方法的优点是您不需要更改任何桌面条目文件。所有 .desktop
Terminal=true
都将使用新的终端仿真器。尝试使用
exo-open
(类似于xdg-open
,来自 xfce)执行桌面条目时,会出现警告消息所以我猜
xterm
是在程序中硬编码来打开 .desktop 文件。然后我尝试制作这个符号链接它工作得很好。
然而,实际生成的命令可能基于
xterm
的参数,因此只有使用相同参数来指定启动命令的终端仿真器才有效。一个反例是termite
,因为它需要在-e
选项中引用整个命令。