web-dev-qa-db-ja.com

MacOSターミナル:Control + Cが「ハイジャック」されました。 Control + Cをクリックすると、端末は^ Zを出力します

MacOSターミナル(またはiTerm)に特有の問題があるようで、原因を特定できません。

ターミナルでプログラムを強制終了する必要があるときはいつでも、 ControlC 動作しません。端末は、すべてに対して^Zを出力するだけです。 ControlC

^Z^Z^Z^Z^Z^Z^Z
^Z^Z
^Z^Z^Z
^Z^Z^Z

それはに限定されません ControlC

  • ^Xを取得します ControlX
  • ^C for ControlC
  • 等々。

それは時々起こります。時々それは機能している、そしてそれはそうではない、そしてそれは再び機能している。

私が試したこと:

  • で始まるほとんどすべてのキーボードショートカットを削除しました Control。で始まるものだけを残しました ControlF

  • キーボードビューアも同じことをします(つまり、^Z)。

  • 修飾キーはデフォルトのものです。

  • アプリを切り替えて、アプリが「ハイジャック」する可能性があるかどうかを判断しようとしました Control キーですが、それが原因であるかどうか、もしそうなら、そのアプリ(Chrome、TextMate、Notes.app)は何かを特定することはできません。

  • stty -aの出力:

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 = ^Z; time = 0; werase = ^W;```
1
Max

ターミナルからのstty -aの出力は何ですか?

あなたはintr = ^C;を探しています

これは役立つ場合があります: Ctrl-CおよびCtrl-Zがターミナルで機能しない

1
Wyatt McGehee

問題をさらに特定することができました。

これは、サーバーにSSHで接続している場合にのみ発生し、最初にCtrl + Zを押してプログラムを中断した場合にのみ発生します。

最初にCtrl + Cを使用すると、機能します。 Ctrl + Zを使用してからCtrl + Cを使用すると、機能しなくなります(プログラム全体が入力を取得しなくなります)。

そのままにしておきます。

他の人を助けるかもしれない他の発見:

  • ShortcutDetectiveアプリ[1]は、問題がローカルにある場合にのみ役立ちます(つまり、ショートカットを「盗む」アプリ)。

  • tailまたはcat&Bashバージョンv3.2.48(1)-release [2]に関連するバグが報告されました。

  • Catalinaにはzshが付属しているので、Catalinaにインストールされているものではなく、zshの最新バージョンのhomebrewを使用しようとしました。

    % zsh --version
    zsh 5.7.1 (x86_64-Apple-darwin19.0)
    
    % brew info zsh
    zsh: stable 5.8 (bottled), HEAD
    
    % brew install zsh
    [...]
    ==> Pouring zsh-5.8.catalina.bottle.tar.gz
    ????  /usr/local/Cellar/zsh/5.8: 1,531 files, 13.7MB
    
  • 別のスレッド[3]は、問題がrvmにある可能性があると報告したため、使用していなかったため、完全にアンインストールしました。

    % rvm version
    rvm 1.25.15 (stable)
    

[1] https://Apple.stackexchange.com/questions/104074/find-which-process-receives-a-given-keyboard-command

[2] Mac OSターミナル-一部のアプリケーションでは、ctrl-cの後にキーボードエコーが途切れます

[3] ^ CがMacOSXのzshで機能しない

1
Max