Налаштування терміналу
Я вважаю, що це більше пов'язано з тим, як налаштований термінал, ніж з будь-якою проблемою буферизації. Перевірте вихід stty -a | grep intr
, який у вас повинен бути intr = ^C;
у вихідному рядку, якщо Ctrl- Cувімкнено на tty
/ pty
. Якщо це не так, ви можете використовувати stty intr ^C
для його включення. Додайте рядок до свого .tcshrc
або .login
зробіть його постійним (або видаліть його в першу чергу!).
В іншому випадку Ctrl- Cви також можете спробувати відправити SIGQUIT
з Ctrl- \. Якщо це не працює, ще раз перевірте, stty -a | grep quit
чи правильно налаштовано.
Налаштування термінального емулятора
Також перевірте параметри емулятора терміналу (якщо ви користуєтесь ним), можливо, на цьому рівні встановлено ярлик (можливо, для копіювання чи щось таке), і Ctrl- Cне досягне pty
рівня. Ярлик також можна встановити десь у вашому середовищі робочого столу чи у системі Windows.
Хороший тест на Linux, якщо ви використовуєте емулятор терміналу, - це перейти на консоль Linux ( Ctrl- Alt- F1), увійти туди і побачити, чи відбувається така ж поведінка. Якщо цього немає, це говорить про те, що проблема полягає у вашій системі Window або емуляторі терміналу.
Це може бути проблемою із затримкою між зчитуванням даних із pty
пристрою, як це запропонував peterph . Але якщо це так , і ви на самому справі доводиться чекати хвилин дані , які будуть відображатися, то , звичайно, емулятор терміналу буферизация шлях занадто багато даних (або ваш комп'ютер дуже повільно). Відповідь полягає в тому, щоб знайти спосіб зменшити розмір буфера в налаштуваннях емулятора терміналу або використовувати інший.
Додатковий рада
Ще щось, що варто додати; Я, як правило, опиняюся в утікаючій cat
ситуації, коли випадково cat
бінарний файл. Інший ефект цього може полягати у виправданні налаштувань терміналу (якщо двійкові дані відповідають різним кодам виходу терміналів, що це часто відбувається). Якщо tput
встановлено (як правило, за замовчуванням), ви можете уникнути необхідності перезапуску за допомогою наступної команди:
tput reset