Às vezes, tentei invocar o Vim usando xargs
assim:
find . -name '*.java' | xargs vim
… Que tipo de trabalho:
Quando o Vim é iniciado, vejo o seguinte aviso brevemente:
Vim: Warning: Input is not from a terminal
- A edição funciona -
:files
enumera corretamente todos os.java
arquivos conforme o esperado. - Eu posso salvar e sair.
No entanto, depois de sair do Vim, meu terminal é acionado:
- Tudo o que eu digito no prompt do shell não é ecoado.
- Os retornos de carro não aparecem e os feeds de linha aparecem apenas algumas vezes.
Isso continua até eu emitir um reset(1)
comando para reinicializar o terminal.
Isso é um bug do Vim ou existe uma explicação mais satisfatória para o motivo de ele interagir com o terminal assim? Eu já vi isso acontecer no Vim até a versão 7.3 (a versão não parece importar) no Linux e em vários Unices.
Estou ciente de uma solução alternativa, a saber vim $(find . -name '*.java')
. Outras soluções alternativas seriam bem-vindas, embora essa não seja minha pergunta principal.
xargs
usa um manequimstdin
que não pode ser usado pelo Vim e quebras tudo depois.