xargs с командой, которая открывает редактор, оставляет оболочку в странном состоянии

Я попытался создать псевдоним для фиксации нескольких разных проектов git. Я пробовал что-то вроде

cat projectPaths | \
xargs -I project git --git-dir=project/.git --work-tree=project commit -a

, где projectPaths - это файл, содержащий пути ко всем проектам, которые я хочу зафиксировать. Похоже, это работает по большей части, последовательно запуская vi для каждого проекта, чтобы я мог написать для него сообщение фиксации. Однако я получаю сообщение:

«Vim: Предупреждение: ввод не с терминала»

, и после этого мой терминал выглядит странно: он не показывает текст, который я набираю, и, кажется, не выводит любые символы новой строки. Когда я вхожу в «сброс», все возвращается к нормальному состоянию, но очевидно, что я делаю что-то не так.

Есть ли способ добиться такого же поведения, не испортив мою оболочку?

Спасибо!

14
задан miku 4 October 2010 в 03:12
поделиться