web-dev-qa-db-ja.com

tmuxでVimとMidnight Commanderの両方のPuTTYにファンクションキーを設定しますか?

まず、私は使用できることを知っています Alt+1 (9および0を介して)それぞれのファンクションキーを合成します(F1 使って F10)真夜中の司令官。これは何度も役に立ちましたが、デフォルトではactualファンクションキーを直感的に押します。

要旨:PuTTYを使用して、tmuxセッション(ウィンドウ、場合によってはペイン)内でVimとMidnight Commanderの両方を実行しようとしています。

したがって、デフォルトでは次のPuTTY構成があります。

PuTTY keyboard config

ESC[n~マッピングあり

マッピング時の問題(map <F1> :tab help<CR>、およびnmapimap) F1 Vimでは、それはの効果を与えるということです ~ (トグルケース)。そして確かに私が押した場合 F1 使って F5 シェルでは、チルダ(~)が結果で、alongがベル付きです。ただし、この設定を使用すると、Midnight Commanderではファンクションキーが完全に機能します。

上記の設定には、私の問題に加えて、奇妙なことが1つあります F1:私も「マッピング」されました F5set pastetoggle=<F5>)Vimで。奇妙なことにそれは魅力のように機能しますが、 F5 シェルのキーは、~を F1 等.

注:tmux外でVimを実行する場合、デフォルトのバインディング(および私のオーバーライド) F1 うまくいきます!

「Linux」マッピングあり

だから当然、私は上のダイアログで「Linux」設定を使用しようとしました。だから私が押すと F1 Vimは行末で挿入モードになります(効果 A)。 Midnight Commanderは、この設定のファンクションキーを認識しません。シェルで案の定 F1Aとベル(F2Bなど)。

ここで何が欠けていますか? Midnight CommanderとVimの両方がファンクションキーを認識する均一な動作を得るにはどうすればよいですか?


追加情報:

リモートシステムはLANG=en_US.UTF-8を含むUbuntu 14.04です。

TERMtmuxセッションの外ではTERM=xtermに設定され、ペインまたはウィンドウの内部から見た場合はTERM=screenに設定されます。

私は使用していません:

set-option -g default-terminal "screen-256color"

tmux内の端末タイプを上書きします。

10
0xC0000022L

問題は、tmux外のTERM=xtermです。 xterm端末の説明と一致するPuTTYのno構成があり、不一致がscreenまたはtmuxにフィードされます(選択してください)。

たとえば、ncursesを参照してくださいFAQTERMを "xterm"に設定して使用しないのはなぜですか?。もちろんそこに設定すべき推奨事項

TERM=PuTTY

tack を使用した簡単なチェックは、この組み合わせ(TERM=PuTTYtmux)がUbuntu 14.04で機能することを示しています(これを含むncurses-termパッケージをインストールしておく必要があります)。

8
Thomas Dickey