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:
:files
elenca correttamente tutti i.java
file 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.
xargs
usa un manichinostdin
che non può essere usato da Vim e si rompe tutto dopo.