J'ai parfois essayé d'invoquer Vim en utilisant xargs
, comme ceci:
find . -name '*.java' | xargs vim
… Quel genre d'œuvres:
Au lancement de Vim, je vois brièvement le flash d'avertissement suivant:
Vim: Warning: Input is not from a terminal
- L'édition fonctionne -
:files
énumère correctement tous les.java
fichiers comme prévu. - Je peux enregistrer et quitter.
Cependant, après avoir quitté Vim, mon terminal est bouché:
- Tout ce que je tape à l'invite du shell n'est pas répété.
- Les retours chariot n'apparaissent pas du tout et les sauts de ligne n'apparaissent que parfois.
Cela continue jusqu'à ce que j'émette une reset(1)
commande pour réinitialiser le terminal.
Est-ce un bug Vim, ou y a-t-il une explication plus satisfaisante pour expliquer pourquoi il interagit avec le terminal comme ça? Je l'ai vu se produire sur Vim jusqu'à la version 7.3 (la version ne semble pas avoir d'importance) sur Linux et divers Unices.
Je connais une solution de contournement, à savoir vim $(find . -name '*.java')
. D'autres solutions de contournement seraient les bienvenues, mais ce n'est pas ma principale question.
xargs
utilise un mannequinstdin
qui ne peut pas être utilisé par Vim et fait une pause tout après.