![Mac OS 终端 - 使用某些应用程序时,按 Ctrl-C 组合键后键盘回声中断](https://linux22.com/image/1250915/Mac%20OS%20%E7%BB%88%E7%AB%AF%20-%20%E4%BD%BF%E7%94%A8%E6%9F%90%E4%BA%9B%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%EF%BC%8C%E6%8C%89%20Ctrl-C%20%E7%BB%84%E5%90%88%E9%94%AE%E5%90%8E%E9%94%AE%E7%9B%98%E5%9B%9E%E5%A3%B0%E4%B8%AD%E6%96%AD.png)
我能够重现此问题的唯一两个应用程序是tail
和cat
。如果我运行tail -f log/development.log
或 任何文件,然后按 CTRL-C 退出,当我输入其他命令时,屏幕上不会出现键盘回显。如果我按 Enter 键,命令会运行并生成输出,但键盘回显仍然损坏。
有趣的是,我可以通过几种不同的方式恢复键盘回声:
1)stty echo
2)irb
运行其中任一命令都会恢复键盘回声,直到再次使用 CTRL-C 退出其中一个有问题的命令。
我尝试将我的终端仿真设置为 rxvt 和 xterm-color,但更改这个似乎没有什么区别。
答案1
要重置您的终端,请使用reset
命令。
我不明白为什么tail
会cat
造成这个问题,因为他们不应该做任何影响终端线路设置的事情。您使用的是 Terminal.app 还是其他终端?您使用的是 Bash 还是其他 shell?您正在运行吗screen
?您是否还有其他可能使用 curses 或进行其他屏幕操作的东西?您是否有trap
Ctrl-C 的设置?
答案2
答案3
答案4
我在 ssh 会话中遇到此问题(我认为是运行 screen),该会话连接到 Linux 机器。如果我将rsync
需要密码的命令传输到less
,less
可能会有点混乱。Ctrl-C 可以让我摆脱这种情况,但之后键盘回显有时不起作用。
@Michael Guterl 的解决方案解决了该问题:
stty echo
附言:我正在运行苹果内置的 bash:4.2.45(2)-release (i386-apple-darwin12.3.0)