Czasami próbowałem wywołać Vima przy użyciu xargs
:
find . -name '*.java' | xargs vim
… Jaki rodzaj prac:
Gdy uruchamia się Vim, na krótko pojawia się następujące ostrzeżenie:
Vim: Warning: Input is not from a terminal
- Edycja działa -
:files
poprawnie wylicza wszystkie.java
pliki zgodnie z oczekiwaniami. - Mogę zapisać i zrezygnować.
Jednak po wyjściu z Vima mój terminal jest zablokowany:
- Cokolwiek napiszę w wierszu poleceń powłoki, nie jest powtarzane.
- Zwroty karetki w ogóle się nie pojawiają, a linie pojawiają się tylko czasami.
Trwa to do momentu wydania reset(1)
polecenia ponownego zainicjowania terminala.
Czy to błąd Vima, czy może istnieje bardziej satysfakcjonujące wyjaśnienie, dlaczego współpracuje on z terminalem w ten sposób? Widziałem, jak to się dzieje w Vimie do wersji 7.3 (wersja nie wydaje się mieć znaczenia) w Linuksie i różnych Uniksach.
Mam świadomość jednego obejścia, a mianowicie vim $(find . -name '*.java')
. Inne obejścia byłyby mile widziane, ale to nie jest moje główne pytanie.
xargs
używa manekinastdin
, z którego nie może korzystać Vim. wszystko później.