如何让鱼吞咽?或者至少让自己脱离程序

How do I get fish to swallow? or at least to detach itself from a program

我希望能够键入“vlc Music/”,然后让终端消失,直到我关闭新启动的 VLC window。我查看了文档和其他地方,但找不到解决方案。如果我仍然可以使用终端,我会很好地保持打开状态,我只是不想打开无用的 window,并且使用缩写来启动音乐播放器比使用 VLC 更优先使用 Rofi 启动后的 GUI。

另外,如果我学会了如何做,我就可以对我的所有程序做同样的事情,并且能够只使用终端来启动我的应用程序,而不需要一直使用 Rofi。

假设您不关心任何 vlc 输出:

function vlc --wraps=vlc
    command vlc $argv >/dev/null 2>&1 &
    disown
end
funcsave vlc

这会将 vlc 启动到后台,丢弃任何 stdout 或 stderr,然后将进程与终端分离。

如果这是你要重复做的事情,你可以这样做:

function disowner -a cmd
    eval "function $cmd --wraps=$cmd
        command $cmd $argv >/dev/null 2>&1 &
        disown
    end"
end

disowner vlc
funcsave vlc