TmuxのCtrl-`をselect-paneにバインドしたいのですが。
私が試した:bind -n C-` select-pane -t:。+これは私に:unknown key C-`
私も試しました:bind -n'C-` 'select-pane -t:。+これで同じエラーが発生します。
次に、単純な `:bind -n` select-pane -t:。+を試してみましたが、正常に機能しました(ただし、C-`ではなく`をバインドしました。
最も紛らわしいことに、私は次のことを試みました:bind -n `-C select-pane -t:。+これは驚くほどうまくいきました(最初にバッククォートを押してからctrlを押す必要がありました)。 tmuxが気に入らないのはCtrl-`内で何ですか?
tmux
は、このロジックを使用して ctrlkey-string.c
の修飾子(バッククォートはコード96):
/* Convert the standard control keys. */
if (key < KEYC_BASE && (modifiers & KEYC_CTRL) && !strchr(other, key)) {
if (key >= 97 && key <= 122)
key -= 96;
else if (key >= 64 && key <= 95)
key -= 64;
else if (key == 32)
key = 0;
else if (key == 63)
key = KEYC_BSPACE;
else
return (KEYC_NONE);
modifiers &= ~KEYC_CTRL;
}
一部のアプリケーションでは、64〜126の範囲全体が有効であると見なされる場合があります。 ctrl、tmuxは、バックティック、中括弧、垂直バー、チルダを除外します。考えられる理由は、変更されていないキーがシェルスクリプトでよく使用されるため、キーバインディングにはあまり役立たないことです。
一方、ctrl-@
は同じ予想される解釈を持ち、代わりにそれを使用できます。
エスケープシーケンスをチェックするためにtmux内でcat
を使用するアドバイスをどこかで見つけました。
tmux
を実行しますcat
を実行しますC-`
私の端末には^@
だから私が置いた設定に
set -g prefix ^@
roxterm
で私のために働いた