6

Я хотел бы запустить процесс в фоновом режиме в Vim на Mac OS X (или Unix в целом).

Я надеюсь и ожидаю, что следующий или какой-то другой вариант достигнет этого:

execute "!my_command &"

или же

!my_command &

или же

!my_command \&

или какая-то другая альтернатива.

К сожалению, это не похоже на выполнение my_command вообще. Я ожидаю, что будет какой-то легкий вариант.

Один из вариантов - написать скрипт-обертку, который разветвляет команду и завершает работу, но я уверен, что кто-то уже это сделал (GNU Parallel?).

Каков наилучший способ сделать это?

2 ответа2

8

Все приведенные ниже команды работают должным образом при выполнении в MacVim (снимок 66), и я уверен, что они будут работать на моем компьютере с Ubuntu:

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

Если это не работает для вас, вы можете попробовать один из нескольких сценариев, которые позволяют запускать асинхронные команды:

(и я только что увидел, что Тор решил твою проблему)

7

Это может быть потому, что my_command нужен терминал для взаимодействия с. Вы могли бы предоставить один экран GNU или tmux, например:

!screen -dm "my_command"

Или же:

!tmux new -d "my_command"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .