Функция zsh выводит подсказку после выхода - PullRequest
2 голосов
/ 11 января 2012

Я использую oh-my-zsh для настройки, и приглашение выглядит следующим образом

┌─[naveen@bblpt005] - [~] - [Wed Jan 11, 03:16]
└─[$] <> 

Я определил функцию в моем .zshrc для поиска файлов и открытия их в Vim.

vf() {
     find . -name "$*" | xargs vi;
}

Функция работает должным образом, но когда я выхожу из Vim, приглашение облажается и отображается как

┌─[naveen@bblpt005] - [~] - [Wed Jan 11, 03:20]
                                           └─[$] <> 

Ctrl-D, и другие комбинации клавиш Ctrl также перестают работать.Я должен исправить это с помощью команды reset.

Как изменить функцию, чтобы этого не происходило?

1 Ответ

4 голосов
/ 11 января 2012

Когда вы запускаете команду под xargs, ее стандартный вывод подключается к /dev/null.vi вероятно не ожидает этого.Текстовый редактор обычно должен работать без перенаправления ввода / вывода.Попробуйте это и посмотрите, имеет ли это тот же эффект на вашем терминале.Бьюсь об заклад, он делает:

vi somefile </dev/null

Вы можете обойти это, используя что-то, кроме xargs.Как это может быть:

vi $(find . -name "$*")
...