tmuxカラーパレットはどのように機能しますか?


140

私は何かを灰色に設定しようとしていますが、どうすればよいかわかりません。私が見つけることができる色に関するマニュアルページの情報の唯一のビットは次のとおりです。

message-bg colour
  Set status line message background colour, where colour is one of:
  black, red, green, yellow, blue, magenta, cyan, white, colour0 to
  colour255 from the 256-colour palette, or default.

また色を反復処理するブログ投稿を見つけましが、それを完全に理解することはできません。

回答:


223

このbashスニペットでリストを取得できます:

for i in {0..255}; do
    printf "\x1b[38;5;${i}mcolour${i}\x1b[0m\n"
done

次にで使用colourxxxtmuxます。


18
$リセットを使用してプロンプトの色を元に戻します:>
lkraav

おそらく3桁の色が必要ですか?このスクリプトは次のように出力しますcolor12が、tmuxでは有効な色として受け入れられません。
artfulrobot

6
tmux(1.6)はcolour12(「u」に注意してください)のような色も受け入れます。
cYrus

1
この答えはまだ役に立ちます!欲しい色を選ぶのを助けてくれました。
休閑

6
ああ、神様!私の端末の虹。米国で結婚の平等を祝うのにちょうど間に合います!
ガーベリーニ


22

Subversion(tmux 1.5)では、最も近い256色パレットエントリにマップされる#abcdef hexスタイルの色を使用することもできます。通常の色の名前は名前付き定数として扱われますが、引用符は文字列として扱われるため、引用符が必要です。また、3文字の略記(#f00)は無効です。

例:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb

1
あなたはできる?方法がわかりません
エリック

5
set-option message-bg "#abcdef"; 引用符が必要です。
-chepner

あなたはまた、完全な6進文字を使用するように持っているように見える、つまりは何の3つの文字のショートカット#fffは動作しませんが、あなたが使用する必要がない#ffffff
bschlueter



6

@cYrusの答えに基づいて、色の出力をN個の列に分割するスクリプトを作成しました。Nは最初の引数です

# colors.sh

#!/bin/bash
if [ -z $1 ]; then
    BREAK=1
else
    BREAK=$1
fi
for i in {0..255} ; do
    printf "\x1b[38;5;${i}mcolour${i} \t"
    if [ $(( i % $BREAK )) -eq $(($BREAK-1)) ] ; then
        printf "\n"
    fi
done

colors.shというファイルに保存して試してください。 ./colors.sh 4

chmod +x colors.sh最初に忘れないでください。


3
スクリプトshow-256-colors.shは、背景色も表示するのに役立ちます。
マキシムススロフ

元のスクリプトと区別するために、デフォルトで少なくとも4列とする必要があります。
dbkeys
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.