web-dev-qa-db-ja.com

Vim:TMUXと組み合わせたt_Co = 256とterm = xterm-256colorの違い

私は、TmuxがセットアップされているLinuxボックスにSSHで接続するのに使用するさまざまな端末をテストしています。

基本的に私はこの振る舞いに気づきました、そして、私は誰かが何が起こっているかの説明を提供できることを望んでいます。現在、これはプロンプトアプリに影響する特定の動作である場合があります。

Tmux内でVimを使用していますが、iPhone5のPanicのPromptアプリでは、.vimrcset t_Co=256ディレクティブを使用して色を設定したときに256色が有効にならないという動作がありました。ここで、VimがTmuxを実行していなかったとき、色を正しく表示していました。また、OS XのTerminal.appは、TmuxのVimで色を正しくレンダリングしました(残念ながら、WindowsでPuTTYをテストしませんでした)。

次に、set t_Co=256set term=xterm-256colorに交換しました。VimをTmuxで使用すると、色が機能するようになりました。

Tmuxのset -g default-terminal "xterm-256color"set -g default-terminal "screen-256color"の両方の設定をテストしたことにも注意してください。この変更は動作に影響を与えませんでした。

37
Steven Lu

set t_Co=256set term=xterm-256colorの両方を一緒に使用できます。

termは、使用する端末タイプをVimに指示します。これは、キー入力のマッピング、画面の再描画、カーソルの移動、色の表示など、Vimのすべての側面の表示/レンダリングを制御します。 OSが提供するTERM環境変数を使用して、これを独自に把握してください。

OSの値が正しくない場合に、明示的に設定すると役立つことがよくあります。これは、正しい値を提供しないターミナルエミュレータからネットワーク経由で接続している場合に特に当てはまります。

t_Coは、多くの端末オプションの1つです(Vimが端末制御に使用するtermcapシステムで使用されます)。具体的には、端末がサポートする色の数を指します。ターミナルエミュレーションがほとんど正しい場合、これをオーバーライドする必要がある場合がありますが、Vimはサポートされている色の数を正しく識別しません。

.vimrcでこれらのオプションを両方使用して、Vimがtmuxで好きなすべての端末(Ubuntuのgnome-terminal、OSXのiTerm2、およびWindowsのKiTTY)を使用して256色を使用するようにします。また、xterm-256colorを端末タイプとして送信するように明示的に構成されたこれらの端末のほとんどがあります。

8
Jim Stewart