tmuxで256色を使用する


177

で正常に機能する256色がありkonsole,ます。tmux画面とは異なり、viモードをサポートしているようなので、試してみると思いました。ただし、プロンプトの色が表示されることがわかりました。これは、256色モードのプロンプトがあるためです。tmux256色すべてを認識するために何をする必要がありますか?


2
tmux -2私はターミネーターでこれをしなければならなかったし、私は幾分驚いた。-2フラグは、端末がそれを好きかどうか... 256色の使用を強制するためにtmuxはを告げる...焦げ茶色焦げ茶色dunnnを:P
ディラン

回答:


253

tmuxのよくある質問は、明示的にそれをしない、あなたのシェル初期化ファイルの画面や画面-256色以外にTERMを設定することに対して助言します!

私が使用するものは次のとおりです。

~$ which tmux
tmux: aliased to TERM=xterm-256color tmux

そして、私の.tmux.confで:

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

tmuxtmux -2」へのエイリアスもトリックを行う必要があります。


4
.tmux.confで設定するのが一番好きです...シェルを使用して設定するのは正しくないようです
xenoterracide

6
奇妙な。tmux -2OSX では必要ありませんが、Gnomeターミナルでは必要です。私のエイリアスに追加された情報をありがとう!
FX

1
Kubuntu 13.10では、.tmux.confの設定だけでは256色が元に戻りませんでした(vimビジュアルモードで強調表示が消えました)が、エイリアスは機能しました。確かに.tmux.confファイルのみのソリューションを好むでしょう。
ジェイコブダルトン

1
(OS Xターミナルから)Ubuntuマシンにsshして、.tmux.confのデフォルトのターミナルだけが必要でした。
デュエリンマーカー

2
私にとってはTERM=screen-256color tmux.tmux.confファイルを作成せずにすればいいだけのようです。何か不足していますか?
joelostblom

39

bashrcまたはzshrcで256色を明示的に設定してみてください。

export TERM=xterm-256color

または

export TERM=screen-256color

画面用語の設定を使用するときにtmuxで背景色が正しくクリアされないという問題がある場合は、次のことを試すことができます。

export TERM=screen-256color-bce

1
最初の設定はデフォルトのTERM設定です。他の2つを試してみましたが、tmuxを入力してもプロンプトに色が表示されません。(tmuxの下部に色が表示されることに注意してください)... tmuxを入力すると、TERMがTERM = screenにリセットされるようです...おそらく設定でこれをオーバーライドする方法がありますか?
xenoterracide

nvm ...シェルのrcに入れるとうまくいくと思います... tmuxを実行するときに設定されるTERM環境変数を無視するのは面倒です... rcに条件を入れる必要があると思います。
xenoterracide

1
-bceはtmuxと互換性がありません。Tmuxは背景色の消去をサポートしていません:
ダスティンカークランド

1
roxtermでこの問題が発生しました。これにroxtermを追加することで、人々が私と同じ解決策を見つけるのに役立つことを願っています。私はvimになり、行を選択するとそれらが消えます。検索が非常に困難です。デフォルトでは、roxtermは$ TERM = xtermだけでセットアップしますが、これは良くありません。
BeepDog 14

5
-1、シェルの初期化ファイルで無条件に設定しないでください。に設定するとxterm-256colortmux内でも同様にオーバーライドさscreen-256colorれ、tmuxの外部に設定するとバグが表示される可能性があります。
nyuszika7h

19

tmux FAQに従って、これを以下に追加します~/.tmux.conf

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

次に、tmuxにこのエイリアスを追加します。

alias tmux='tmux -2'

TERMプロファイル内または開始時に変数をオーバーライドする必要はありませんtmux

詳細:http : //vim.wikia.com/wiki/256_colors_setup_for_console_Vim


2
tmuxを設定するだけで十分です。エイリアスを設定する必要はありませんでした(おそらく、問題はないでしょう)。
アニシュパテル

tmuxを単独で設定することは私にとってはうまくいきます。エイリアスは十分ではありませんでした。
ハリーモレノ

12

ncursesの最新バージョンには、tmux-256colorの terminfoエントリが含まれています(FAQにはこれが記載されています)。例として、screen-256colorよりもtmux-256colorを使用する利点は、斜体が適切にレンダリングされることです(画面は斜体をサポートしていません)。

したがって、最新のncursesパッケージを使用している場合、以下も同様に機能します。

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

私はこのソリューションが必要tmux 2.6以上のように見えることに注意してください
zzxyz

3

Bionic(18.04)よりも古いUbuntuを実行している場合は、ここで本当に重要な注意を払ってください。あなたが走っている、tmux 2.1またはそれ以上の年齢で、おそらくあなたがそうであるなら、基本的にtmuxについてオンラインで読むアドバイスは何の役にも立ちません。

tmux -Vこれは簡単なテストです。表示2.1または古い場合は、ソースからtmuxをビルドするか、非公式のリポジトリを追加できます。私はtmuxを次のように更新しました:

sudo add-apt-repository ppa:/hnakamur/tmux
sudo apt update
sudo apt upgrade

個人的には、にアップグレードした後2.6、1)私のキーはより良く機能します、2)オンラインアドバイスは実際に動作します、3)私の色は狂っていません。大きな改善。

(リポジトリページへのリンクは、btwです):https : //launchpad.net/~hnakamur


2

これがなぜ機能するのか説明できませんでしたが、問題は解決しました。

〜/ .tmux.conf

set-option -g default-command bash

1
私はこれを最後の手段として試してみましたが、驚くほどうまくいきました!
21

1

これが私の解決策です。.bashrcファイルを編集して、これを追加します

if [ "$TERM" != "xterm-256color" ]; then
      export TERM=xterm-256color
    fi

うまくいけば、それはあなたのもので動作します


10
なぜわざわざif?変数を設定するだけで済みます。
-joeytwiddle
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.