Я иногда пытался вызвать Vim, используя xargs
это:
find . -name '*.java' | xargs vim
… Какие работы:
Когда Vim запускается, я вижу следующее предупреждение:
Vim: Warning: Input is not from a terminal
- Редактирование работает -
:files
правильно перечисляет все.java
файлы, как и ожидалось. - Я могу сохранить и выйти.
Однако после выхода из Vim мой терминал пропал:
- Все, что я печатаю в командной строке, не отражается.
- Возврат каретки вообще не появляется, а переводы строки появляются только иногда.
Это продолжается до тех пор, пока я не выполню reset(1)
команду для повторной инициализации терминала.
Это ошибка Vim, или есть более удовлетворительное объяснение, почему он так взаимодействует с терминалом? Я видел, как это происходит в Vim до версии 7.3 (версия, кажется, не имеет значения) в Linux и различных Unices.
Я знаю один обходной путь, а именно vim $(find . -name '*.java')
. Другие обходные пути будут приветствоваться, хотя это не мой главный вопрос.
xargs
используется пустышкаstdin
, которую Vim не может использовать, и перерывы все потом.