PuTTY / MinTTYおよびTmux / Byobuのファンクションキーのショートカット


18

Stack Exchangeの長年の潜伏者として、アカウントを作成することなく、ほとんどの問題に対する答えを見つけました。しかし、今日、私はこの問題に完全に困惑しているので、助けを求めています。

最近、一般的なタスクにFnキーを使用するTmuxのフロントエンドであるByobuを発見しました。これは、仕事で使用しなければならないWindows PCからリモートLinuxサーバーへのSSHを介したマルチタスク処理にとって本当に恵まれています。

現在、PuTTYとMinTTY(Cygwinのデフォルト端末)の両方がファンクションキーに間違ったキーコードを送信しているように見えるため、SSHトンネルを介してgnome-terminalを使用しています。

特定のエスケープコードを再マッピングして、Windowsベースの端末の少なくとも1つがTmuxで適切に機能するようにする方法があるかどうか疑問に思いました。(Ctrl + b / Ctrl + aキーの組み合わせを習得することはできたと思いますが、キーの組み合わせに続いて別のキーを実行しても、人間工学的ではありません。)

PuTTYでは、「ターミナル」>「キーボード」>「機能キーとキーパッド」を「XtermR6」に設定すると、通常はFnキーの正しいエスケープシーケンスがプッシュされますが、ShiftおよびCtrl修飾子は壊れています。vimを使用して、各端末から送信されているコードを把握できます。一方、tmuxがソースコードで探している組み合わせを調べたかもしれないと思いますが、よくわかりません。

Key              Tmux Expects    Gnome-Terminal   PuTTY    MinTTY
Normal F3:                       ^[0R             ^[0R     ^[0R
Ctrl+F3          "\033[13^"      ^[01;5R          ^[0R     ^[[1;5R
Shift+F3         "\033[13$"      ^[01;2R          ^[[25~   ^[[1;2R
Ctrl+Shift+F3    "\033[13@"      ^[01;6R          ^[[25~   ^[[1;6R

これまでのところ、MinTTYは最良の候補のように見えますが、ビオブがFnキーを押すことの95%を無視し、クライアントアプリケーションに直接渡すというまったく別の問題を引き起こします。cat -vを実行してF2(新しいウィンドウ)キーをスパムすると、「^ [0Q」が4〜5回出力されてから、突然新しいウィンドウが生成されます。

誰でもアドバイスがあれば歓迎します。インターネットで見つけたもののほとんどが端末の種類を変えると言っていましたが、文字通り、2つのプログラムが提供するすべての組み合わせを試しました。

ありがとう!


3
tmuxにリストするシーケンスは、認識されるrxvtスタイルの変更キーシーケンスです。tmuxは、TERMのterminfoエントリで指定された(変更されていない)シーケンス(たとえばkf3tmuxにアタッチするときに使用しているTERMから)およびxtermスタイルの変更されたキーシーケンスも認識しますxterm-keys.c。したがって、Gnome-TerminalおよびMinTTYから報告するシーケンス(シーケンス内のエスケープ+ゼロはエスケープ+レター-OH(別名SS3)である必要がありますが、tmuxによって認識されるはずですが、xterm-keysオプションが有効
クリス・ジョンセン

回答:


1

PuTTYと画面で同様の問題が発生しました(Ctrl修飾子を使用できませんでした)。私が見つけた解決策は、KiTTY -PuTTYのフォークであり、これはより適切に保守されています(2015/06/02 22:02からの最終更新)。Ctrlキーに関する私の問題はなくなりました。

デフォルトでは、キティは独自のショートカットにFnキーを使用しますが、他の方法設定することができるため、Fnキー押下がアプリケーションに送信されます。


0

私も同じ方法でin風を使用しています。F2,3,4とF6がちょうど私のために働くので、私は最近cygwinを使用していますが、それらは私が本当に心配している唯一のものです。ただし、パテを使用していたとき、VT100 +をエミュレートするように設定された「ファンクションキーとキーパッド」設定で最も成功しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.