Моя проблема в том, что оболочка Bash перестает показывать символы, которые я в нее печатаю. Это действительно читает команды все же.
Я сталкивался с этой проблемой довольно много раз, и я не понимаю, что вызывает ее. Я знаю, как решить эту проблему, но мне действительно не нравится, когда я стараюсь избавиться от проблем.
Я опишу два способа решения этой проблемы:
Я запускаю определенный процесс, http://pythonpaste.org/script/, и иногда, когда я останавливаю это или он нарушает управление, он возвращается обратно в оболочку. Когда я иду и набираю команды в оболочке, символы, которые я печатаю, не отображаются. Когда я нажимаю ввести команды будут представлены. Так, например:
- Я набираю "ls"
- Я вижу только пустую подсказку и больше ничего
- Я нажимаю войти , и я дан список файлов, другими словами: команда будет выполнена
- когда я даю команду «сбросить», оболочка снова начинает нормально работать
Второй способ это происходит, когда я даю такую команду:
$ grep foo * -l | xargs vim
Я использую grep для поиска файлов с определенным шаблоном, а затем хочу открыть все файлы, полученные в результате работы grep. Это работает как шарм (хотя и не так быстро, как я надеялся). Но когда я выхожу из Vim, моя оболочка перестает показывать вводимые в нее символы. Команда сброса решает проблему.
Я предполагаю, что обе проблемы имеют основную причину, но я как бы озадачен тем, как или какова эта причина.
Поиск этой проблемы сам по себе проблематичен, потому что описание является довольно расплывчатым и не содержит жестких условий поиска.
редактировать
Давая
stty --all
команда согласно запросу Джона С. Грубера дала следующий вывод (пробел, отредактированный для удобства чтения)
speed 0 baud;
rows 53;
columns 186;
line = 0;
intr = <undef>;
quit = <undef>;
erase = <undef>;
kill = <undef>;
eof = <undef>;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = <undef>;
stop = <undef>;
susp = <undef>;
rprnt = <undef>;
werase = <undef>;
lnext = <undef>;
flush = <undef>;
min = 0;
time = 0;
-parenb
-parodd cs8
-hupcl
-cstopb cread
-clocal
-crtscts
-ignbrk
-brkint
-ignpar
-parmrk
-inpck
-istrip
-inlcr
-igncr
-icrnl
-ixon
-ixoff
-iuclc
-ixany
-imaxbel
-iutf8
-opost
-olcuc
-ocrnl
-onlcr
-onocr
-onlret
-ofill
-ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig
-icanon
-iexten
-echo
-echoe
-echok
-echonl
-noflsh
-xcase
-tostop
-echoprt
-echoctl
-echoke
stty --all
своего вопроса. Заранее спасибо!
stty --all
и укажите результаты в своем вопросе. Эхо - это tty характеристика, которая отключается. Vim сделает это во время работы и переведет терминал в сырой режим. Когда он выходит, он должен сам сбросить настройки терминала. Когда vim работает, вы не хотите выводитьi
команду, которая переводит редактор, например, в режим вставки. Эти настройки сообщают tty устройству, как оно должно обрабатывать то, что вы печатаете. Пока vim работает, он следит за тем, что должно быть отражено, и т. Д.