web-dev-qa-db-ja.com

tmuxで動作するCtrl +矢印キー

サーバーにSSH接続すると、Ctrl +矢印のシーケンスがうまく機能します。 CtrlV その後 Ctrlup、 down、 right、 left それぞれ^[OA^[OB^[OC^[ODを返します。 tmuxでは、^[[A^[[B^[[C、および^[[Dを取得します。

PuTTY経由でUbuntuに接続していますしかし

  • 正しい端末セットがあります(ncurses-termがインストールされているため、PuTTY)。他のすべてのキーの組み合わせは、メインシェルで機能しています。
  • 適切な文字セット(UTF-8)を使用しています。
  • 私は間違いなく256色の端末を手に入れています(TERM=... tmuxを複数回呼び出してみました)
  • この設定を使用するように言っているtmuxのFAQを読みました:

    set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
    

    私の設定をそうする:

    set -g default-terminal "screen-256color"
    set -g terminal-overrides "screen*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
    set-window-option -g xterm-keys on
    

    screenが他の場所で推奨されていたので(私もそこでPuTTYを試しましたが。

私が見つけた唯一のことは、tmux内でtput rmkxを実行することですが、それが正しい解決策であるかどうか、他のプログラムがこの設定を変更する場合、他にどのような影響があるかはわかりません。または、.tmux.confで正しく設定する必要があるため、常に手動で入力する必要はありません。


今後の読者のために:

  1. xterm-keysは使用しないでください。
  2. tmuxは内部で画面端末タイプを使用するため、set -g default-terminal "screen-256color"は常にscreenまたはscreen-256colorである必要があります。そして
  3. set -g terminal-overrides "PuTTY*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"は常に等しい/ glob-match $TERMoutside tmuxである必要があります。デフォルトでは、PuTTYは接続>データ>端末タイプxtermを使用するため、terminal-overrides設定で使用するか、PuTTYをPuTTY-256colorを使用するように変更します。 。
4
Walf

これはGNUパテの画面?のControlキーの組み合わせを有効にする方法に似ています、しかし別の側面を扱います。

簡単なチェックでは、問題はこの行の間の競合であるようです

set-window-option -g xterm-keys on

この:

set -g terminal-overrides "screen*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"

set-window-optionを削除すると、構成が機能します。

4
Thomas Dickey

terminal-overridesもPuTTYもまったく使用しなくなりました。私の関連する.tmux.confはこれです:

set -g default-terminal "tmux-256color"

私は KiTTY を端末エミュレータに使用し、可能な場合は KiTTY固有のterminfoファイル をコンパイルします。それ以外の場合は、端末タイプとしてPuTTY-256colorを使用します。

0
Walf