【问题标题】:"Q" key does not work in MacBook Pro's Terminal despite working in all other programs尽管在所有其他程序中工作,但“Q”键在 MacBook Pro 的终端中不起作用
【发布时间】:2014-04-15 23:31:51
【问题描述】:

不久前,我键盘上的“Q”键在我的终端中莫名其妙地停止工作。它适用于所有其他地方,但如果我在终端中输入它,则什么也没有出现;如果我复制并粘贴包含“Q”字符的“Q”将被省略。例如,如果我复制“报价”并将其粘贴到终端中,它会显示以下内容:

cs9e-1aj@hive12 [125] ~ # uote

如果现有文件的文件名中包含“Q”字符并且我使用制表符完成,则“Q”字符会出现。我刚刚在学习 Unix 的过程中,我无法找到任何关于可能发生的事情的信息。有谁知道可能发生了什么?有没有办法检查密钥是否被重新映射?谢谢!

这是“stty -a”的输出:

speed 9600 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = q; time = 0; werase = ^W;

【问题讨论】:

  • 能否包含命令stty -a的输出?
  • 添加了输出,在此先感谢!

标签: macos unix terminal keyboard


【解决方案1】:

stty 是一个古老的 Unix 命令,用于配置操作系统以与您的终端一起工作,无论是 VT100、IBM 3486、ICL 7561 还是您自己在车库中构建的终端。

Andrew Filer的最后一张图片)

在 CRT 和位图图形出现之前,这些东西通过串行线路与您的计算机通信。您可以使用stty 命令设置诸如波特率、串行协议中使用多少停止位和奇偶校验位以及终端的哪些控制字符应绑定到特定操作(如退格键或结束符)等内容。文件。

不知何故,您新奇的“软件终端仿真器”被配置为susp = q,这意味着终端将q 输入键按下作为控制字符来暂停当前进程。通过开始一个漫长的过程并按q 来尝试它,您通常会按 CtrlZ

$ curl -LO 'http://softlayer-ams.dl.sourceforge.net/project/systemrescuecd/sysresccd-x86/4.0.1/systemrescuecd-x86-4.0.1.iso'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0q
<q>
[1]+  Stopped                 curl -LO 'http://softlayer-ams.dl.sourceforge.net/project/systemrescuecd/sysresccd-x86/4.0.1/systemrescuecd-x86-4.0.1.iso'
Returned 146 (SIGTSTP).

STOP 信号被发送到进程,而不是字母 q

解决这个问题:

  • 在您的点文件中查找类似stty susp q 的命令;希望您可以通过grep stty ~/.* 找到它。
  • 否则,通过添加将其重置为正常值

    stty susp ^Z
    

    到您的~/.bashrc。请注意,这是文字 ^ 插入符号后跟文字 Z 字符,而不是实际的 ^Z 控制字符。

【讨论】:

  • 忘记回复了,我很抱歉——感谢您的精彩回答!
猜你喜欢
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
相关资源
最近更新 更多