我想在 Mac OS X(或一般的 Unix)上的 Vim 中在后台运行一个进程。
我希望并期待以下或一些变体来实现这一点:
execute "!my_command &"
Run Code Online (Sandbox Code Playgroud)
或者
!my_command &
Run Code Online (Sandbox Code Playgroud)
或者
!my_command \&
Run Code Online (Sandbox Code Playgroud)
或其他一些替代方案。
不幸的是,这似乎根本没有执行my_command。我希望有一些轻量级的选择。
一种选择是编写一个包装器脚本来分叉命令并退出,但我确定有人已经这样做了(GNU Parallel?)。
实现这一目标的最佳方法是什么?
这可能是因为my_command需要一个终端进行交互。你可以提供一个带有 GNU screen 或 tmux 的,例如:
!screen -dm "my_command"
Run Code Online (Sandbox Code Playgroud)
或者:
!tmux new -d "my_command"
Run Code Online (Sandbox Code Playgroud)
下面的所有命令在 MacVim(快照 66)中执行时都按预期工作,我很确定它们可以在我家里的 Ubuntu 机器上工作:
!mplayer song.mp3 &
:execute "!mplayer song.mp3 &"
:call system("mplayer song.mp3 &")
Run Code Online (Sandbox Code Playgroud)
如果它不适合您,您可以尝试允许您运行异步命令的少数脚本之一:
(我刚刚看到雷神解决了你的问题)
| 归档时间: |
|
| 查看次数: |
5839 次 |
| 最近记录: |