从命令行调用 gedit 时,如何将 `gedit Something & disown` 的行为转变为默认行为?

从命令行调用 gedit 时,如何将 `gedit Something & disown` 的行为转变为默认行为?

当我gedit从命令行文件时,它总是锁定终端,并且我厌倦了为其显式命令一个分离的进程。

我尝试将别名设置gedit为类似的名称gedit $* & disown,但这要么不是正确的语法,要么不允许您使用别名重载可执行二进制命令(尝试在 .bash_aliases 函数中使用它,

alias gedit=editorz

function editorz()
{
  gedit $* & disown
}

),但不需要。

那么如何使该命令gedit test.txt不锁定原始终端窗口呢?

答案1

这应该有效:你确定你的内容.bash_aliases已被阅读吗? (这不是标准文件,但它可能来自您的~/.bashrc。如果您对.bashrc和感到困惑.bash_profile,请参阅.bashrc 和 .bash_profile 之间的区别.)

你的函数有一个错误:它应该是

editorz () {
  gedit "$@" & disown
}

您的版本不适用于包含空格或 shell 通配符的文件名。关键字function是可选的。

您可以调用该函数gedit(并且完全省去别名),但是您需要告诉 shell 函数内部的调用是对命令的调用,而不是对函数的调用:

gedit () {
  command gedit "$@" & disown
}

请注意,如果您不小心在前台启动了 gedit(即锁定终端),您可以通过在终端中按Ctrl+Z并输入命令将其置于后台bg

答案2

确保 是function editorz()在别名之前定义的。

我已经尝试过你的方法并且没有问题。

答案3

gedit从实用程序文件夹(而不是终端)打开解决了我的问题

答案4

只需添加以下别名:

alias gedit='gedit -b'

-b选项表示在后台运行

相关内容