1
user@laptop:~$ locate file.ext | xargs vim -p
Vim: Warning: Input is not from a terminal
2 files to edit
user@laptop:~$ 

После нахождения файлов и изменения их в vim я хочу сохранить их и продолжить работу в консоли Unix, но не могу этого сделать.

После закрытия vim консоль просто останавливается. Нет активности на нажатие клавиш. Единственный обходной путь - закрыть вкладку консоли и создать новую. Как я могу решить эту проблему?

3 ответа3

5

попробуйте запустить его по-другому:

vim -p `locate file.ext`

или вы можете попробовать выполнить команду reset после сеанса vim, чтобы сбросить настройки терминала на значения по умолчанию:

locate file.ext | xargs vim -p; reset
1

Это то, что я делаю, после выхода из vim из конвейерной команды Cygwin.

stty sane {enter}

Конечно, вы не увидите, что это будет напечатано, но после того, как вы нажмете Enter, tty вернется к жизни. Это боль, но работает.

Мне не нравится другое решение здесь, потому что часто я выполняю гораздо более сложный поиск, чем поиск файлов. Я мог бы сделать что-то вроде этого:

egrep -ri [pattern] * | sed -e 's:\:.*::g' | grep -v ^Binary | sort | uniq | xargs vim

В моей работе (10-летняя быстро движущаяся кодовая база) этот вид поиска настолько распространен, что у меня есть первые пять команд в одном сценарии оболочки, которые я передаю в vim.

0
Vim: Warning: Input is not from a terminal

Труба не является терминалом как таковым, но вы пробовали fg?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .