O processo de execução do Vim em background

6

Eu gostaria de executar um processo em segundo plano no Vim no Mac OS X (ou no Unix em geral).

Espero e espero que o seguinte, ou alguma variante, faça isso:

execute "!my_command &"

ou

!my_command &

ou

!my_command \&

ou alguma outra alternativa.

Infelizmente, isso não parece executar my_command . Eu esperaria que houvesse alguma opção leve.

Uma opção seria escrever um script wrapper que bifurque o comando e saia, mas tenho certeza que alguém já fez isso ( Paralelo GNU ?).

Qual é a melhor maneira de conseguir isso?

    
por Brian M. Hunt 11.02.2013 / 17:24

2 respostas

7

Isso pode ser porque my_command precisa de um terminal para interagir. Você poderia fornecer um com a tela GNU ou tmux, por exemplo:

!screen -dm "my_command"

Ou:

!tmux new -d "my_command"
    
por 11.02.2013 / 18:46
8

Todos os comandos abaixo funcionam como esperado quando executados no MacVim (snapshot 66), e eu tenho certeza que eles iriam trabalhar na minha caixa Ubuntu em casa:

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

Se não funcionar, você pode tentar um dos poucos scripts que permitem executar comandos assíncronos:

(e acabei de ver que Thor resolveu seu problema)

    
por 11.02.2013 / 18:56

Tags