Tmux でペイン間を移動するために Ch ... Cl をマップしようとしたときに、この問題を発見しました。キーを押しても、Tmux には何も送信されません。
これは、Bash 4.3.11 を搭載した Ubuntu 14.04 VM 上にあります。私は Mac OS Mojave から ssh で接続しています。
私は Mac でこれらのキーを使用できます。たとえば、cat に入力すると、キーが受信され、テキストが出力されます。
~/mac: cat
^H^K^L
明示的にターミナルを割り当てて、VM 上で ssh 経由で cat を実行すると、同様に動作します。
~/mac: ssh -t vm "cat"
^H^K^L
しかし、VM にログインして cat を実行すると、文字は cat に渡されるのではなく、飲み込まれてしまいます。
~/vm: cat
# hitting C-h, C-k, C-l...nothing happens
実験がcat
示すように、入力を飲み込んでいるのは VM 上のターミナルではありません。私の理解では、入力はターミナルから bash へ、そして bash 内で実行されているプロセスへと送られるので、bash が入力を飲み込んでいるようです。これをさらにデバッグするにはどうすればよいでしょうか?
答え1
免責事項: これをコメントとして残したいのですが、十分なカルマを持っていないので、皆さん私に低評価を付けないでください。
Bash は、コマンドライン編集とキーバインドを処理するために GNU readline ライブラリを使用します。
このコマンドの出力を投稿して、キーシーケンスを妨げて通過できないようにする何かが「Control-hjkl」にバインドされているかどうかを確認できますか。
bind -p | grep -v "(not bound)"