A execução do script vim sai do arquivo em lote? (Windows. BATA /. CMD)

3

Tentando executar um script vim como parte de um arquivo em lote com

vim -u NONE -S dothis.vim

mas o que é intrigante é que o arquivo de lote sai depois dessa linha, em vez de continuar com a próxima instrução. Isso acontece se o comando estiver em linha ou for chamado como uma sub-rotina. Se eu criar outro arquivo de lote para CHAMAR este comando, meu lote principal continuará sendo executado, mas na tela nada será exibido, exceto "Por favor, pressione qualquer tecla ..." (palavras reais podem ser um pouco diferentes, não tê-lo visível na tela) , não pode mais ver a execução do arquivo de lote (seria importante nesse caso).

dothis.vim é encerrado com qa! se isso tiver algo a ver com o problema (os arquivos já foram update d); ele auto-edita vários arquivos em subpastas.

    
por kilves76 10.01.2014 / 08:15

1 resposta

3

O "vim" que está sendo executado é provavelmente um arquivo .bat. Isso é o que o instalador padrão cria para você, de qualquer maneira.

Quando você usa diretamente um arquivo .bat de outro, o primeiro arquivo .bat não é mais executado, ele transfere o controle para o segundo sem retornar.

Portanto, isso encerrará seu arquivo .bat:

vim -u NONE -S dothis.vim

Mas isso deve funcionar:

call vim -u NONE -S dothis.vim

Agora, você disse "isso acontece se o comando estiver em linha ou for chamado de uma sub-rotina". Então, você tentou isso? Porque esse arquivo .bat funciona bem para mim:

@echo off
setlocal

echo starting Vim
call vim -u NONE -S dothis.vim
echo Vim done!

endlocal
echo on

Quando eu chamo esse arquivo .bat, vejo as duas mensagens de eco conforme o esperado.

Eu olhei para C: \ Windows \ vim.bat e verifiquei que não existem instruções exit em qualquer lugar, o que poderia causar problemas no primeiro arquivo .bat se feito incorretamente. Se essa abordagem não funcionar, tente postar um arquivo .bat completo que não funcione para você. Como eu disse, o acima funciona para mim muito bem. Omitir call faz apenas a primeira instrução de eco ser executada.

    
por 11.01.2014 / 23:12