A volte ho provato a invocare Vim usando xargs, in questo modo:
find . -name '*.java' | xargs vim
... che tipo di lavori:
All'avvio di Vim, vedo brevemente il seguente avviso lampeggiante:
Vim: Warning: Input is not from a terminal- La modifica funziona:
:fileselenca correttamente tutti i.javafile come previsto. - Posso salvare ed uscire.
Tuttavia, dopo essere uscito da Vim, il mio terminale è bloccato:
- Qualunque cosa scrivo al prompt della shell non viene ripetuta.
- I ritorni a capo non compaiono affatto e gli avanzamenti di riga vengono visualizzati solo a volte.
Questo continua fino a quando non invio un reset(1)comando per reinizializzare il terminale.
È un bug di Vim o c'è una spiegazione più soddisfacente del perché interagisce con il terminale in quel modo? L'ho visto accadere su Vim fino alla versione 7.3 (la versione non sembra avere importanza) su Linux e vari Unices.
Sono a conoscenza di una soluzione alternativa, vale a dire vim $(find . -name '*.java'). Altre soluzioni alternative sarebbero le benvenute, sebbene questa non sia la mia domanda principale.
xargsusa un manichinostdinche non può essere usato da Vim e si rompe tutto dopo.