GNU/Linux >> Linux の 問題 >  >> Linux

Home/End キーが tmux で機能しない

tmux 2.0 では、これらの 2 行を .tmux.conf に追加するだけです。 :

bind -n End send-key C-e
bind -n Home send-key C-a

主な問題は、$TERM に xterm-256color を使用することにあるようです。 $TERM を screen-256color に切り替えたところ、問題は解決しました。


何らかの理由で tmux で xterm-256color を使用したい場合は、inputrc で arch ソリューションを使用してください。 rxvt、ruby irb、python、lua、およびホーム/エンド キーを使用して tmux でテストしました。おそらくすべての readline アプリで問題ありません。

Arch Wiki より:

まず最初に:

<ブロック引用>

$TERM を手動で設定しないでください。端末に任せてください。

<ブロック引用>

多くのコマンド ライン アプリケーションは、Readline ライブラリを使用して入力を読み取ります。そのため、Readline を適切に構成することで、多くの場合、Home と End を修正できます。

デフォルトの /etc/inputrc ファイルには、ホーム/エンド キーのマッピングが含まれていません。

これらのキーに対して発行されたエスケープ シーケンスを確認するには:

1. Ctrl + V
2. Home
3. Spacebar
4. Ctrl + V
5. End

これはおそらく次のように出力されます:$ ^[[1~ ^[[4~ .したがって、これらのシーケンスのマッピングを inputrc に追加する必要があります (/etc/inputrc をグローバルに、またはユーザー ~/.inputrc のみに):

"\e[1~": beginning-of-line
"\e[4~": end-of-line

以下を .tmux.conf に追加します :

bind-key -n Home send Escape "OH"
bind-key -n End send Escape "OF"

これで完了です!

説明

これらのそれぞれと、他の回答やドキュメントを熟読しているときに見た他のいくつかを試した後、これは、私が投げたすべてのシナリオで最終的に機能しました。シナリオは人それぞれ異なるため、同じことを約束することはできませんが、最終的にはこのような結果になりました。

これは、利用できなくなったやや関連性のある記事から同じ試行錯誤とロジックを導入した後に発見されました。重要なのは、翻訳が行われる場所です。私の場合、これは .tmux.conf 内で発生します 、.bashrc ではなく または .zshrc (主に、私のホーム/エンドが tmux の外で正常に機能したためです )

デバッグ

cat -v を使用して、この問題をデバッグできます。 .

cat -v を実行 、次にホームを押します そして終了 キー。 Ctrl を使用して終了します +C .

$ cat -v

tmux using zsh 内の出力は次のようになります。 、 zsh 、および bash :

tmux

➜  ~ cat -v
^[[1~^[[4~^C

zsh

➜  ~ cat -v
^[[H^[[F

バッシュ

bash-3.2$ cat -v
^[[H^[[F

解決策

tput をペアにして、上記の例と予想されるものを比較してください cat -v で :

$ tput khome | cat -v; echo
^[OH
$ tput kend | cat -v; echo
^[OF

結論

この問題は tmux 内にのみ存在するため 、シェル自体内ではなく、代わりに tmux 構成内でバインドの変更を行うことにしました。 bind-key を使用して send とペア 、 Escape を使用できます 翻訳を達成したいシーケンスとペアになったキーワード。したがって:

bind-key -n NAME_OF_KEY send Escape SEQUENCE_GOES_HERE

このデバッグおよび解決プロセスは、他の重要な翻訳の問題にも適用できます。しかし、あまり夢中にならないでください。一部のキーは、何らかの理由で特定のエスケープ シーケンスにマップされます。 bash に注意してください と zsh ^[[H を受け取りました ホームのシーケンス ^[OH の代わりに; .zshrc でこれをオーバーライドすることはおそらくお勧めしません zsh でこれに重大な問題が発生していない限り .


Linux
  1. VimをTmuxで適切に動作させる方法は?

  2. Tmuxで256色を機能させるには?

  3. Linux Setuidが機能しませんか?

  1. なぜ`exit&`が機能しないのですか?

  2. tmuxでlibeventが見つからないというエラー

  3. tmux Ctrl+B が機能しない

  1. Tmuxは.tmux.confを調達していませんか?

  2. Linux –Setuidが機能しないのはなぜですか??

  3. スーパー+矢印キーをホーム/エンドにリマップ