我想在 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 解决了你的问题)