Vim 在后台执行进程

Vim 在后台执行进程

我想在 Mac OS X(或一般 Unix)上的 Vim 中在后台运行一个进程。

我希望并期望以下内容或某种变体能够实现此目的:

execute "!my_command &"

或者

!my_command &

或者

!my_command \&

或者其他替代方案。

不幸的是,这似乎根本无法执行my_command。我希望有一些轻量级的选项。

一个选项是编写一个包装脚本来分叉命令并退出,但我确信有人已经这样做了(GNU 并行?)。

实现这一目标的最佳方法是什么?

答案1

这可能是因为my_command需要一个终端来交互。你可以提供一个 GNU screen 或 tmux,例如:

!screen -dm "my_command"

或者:

!tmux new -d "my_command"

答案2

以下所有命令在 MacVim(快照 66)中执行时均按预期工作,并且我很确定它们也可以在我家里的 Ubuntu 机器上运行:

!mplayer song.mp3 &
:execute "!mplayer song.mp3 &"
:call system("mplayer song.mp3 &")

如果它不适合您,您可以尝试几个允许您运行异步命令的脚本之一:

(我刚刚看到 Thor 解决了你的问题)

相关内容