Abra a saída de um comando shell em um painel dividido

Abra a saída de um comando shell em um painel dividido

Considere qualquer linguagem de programação interpretada.

Posso executar o script atualmente aberto usando ! interpreter %e usar a tecla return para retornar ao vim após o término da execução.

É de alguma forma possível não substituir a janela atual pela saída do comando shell executado, mas abrir a saída em um novo painel dividido? Gostaria de ainda ver meu código-fonte durante a execução do meu script.

Eu tentei :split ! interpreter %, mas não funcionou.

Há algum caminho? Estou usando o vim 7.3.

Responder1

Com :!, o comando externo é executado em um shell e a saída passageira não é capturada dentro do Vim; você apenas vê o que é impresso no terminal e o controle retorna ao Vim após a conclusão do comando externo.

Para manter a saída, você deve lê-la em um Vimamortecedor. Para isso existe o :read!comando. Para abrir um novoarranharbuffer, combine isso com :new:

:new | 0read ! <command>

Se você quiser passar o nome do arquivo do buffer atual ( %) para o comando externo, você deve usar :execute, para que ele já seja avaliado no buffer atual:

:execute 'new | 0read ! interpreter' expand('%')

Ou você usa o fato de que com um novo buffer, o anterior se torna oalternarum, e use #em vez de %:

:new | 0read ! interpreter #

Livre-se do buffer temporário com :bdelete!.

Se você quiser ver a saída de forma assíncrona enquanto ela é executada, você precisa de um multiplexador externo ou plugin, conforme mencionado na resposta @chaos.

Responder2

Pelo que eu sei, você não pode fazer isso em vim. Mas use um multiplexador de terminal como screenpara isso. Antes de abrir um vim, inicie o multiplexador:

screen

Em seguida, pressione ctrl- a Spara horizontal e ctrl- a |para uma tela derramada verticalmente.

Agora abra um arquivo em vimuma das telas divididas. E pule para a outra tela usando ctrl- a tab. Observe que, na segunda tela você primeiro precisa abrir uma nova tela ( ctrl- a c) antes de poder utilizá-la.

Na tela com o vim você pode editar o arquivo e na outra tela você pode executá-lo e ver as mensagens e o código permanentemente.

Aqui umreferência rápidapara screen.

informação relacionada