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.

我还找到了一篇博客文章,该文章遍历颜色,但是我不太理解它,也不想整天坐在终端上猜测颜色数字,直到一个可行为止。

Answers:


223

您可以使用以下bash代码段获取列表:

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

然后colourxxx与结合使用tmux


18
使用$ reset返回您的提示色:>
lkraav

也许您需要三位数的颜色?该脚本输出类似,color12但tmux不接受为有效颜色。
artfulrobot

6
我的tmux(1.6)接受甚至colour12(请注意“ u”)的颜色。
cYrus

1
这个答案还是有帮助的!帮助我选择想要的颜色。
2013年

6
我的天啊!我终端上的彩虹。正是时候庆祝美国的婚姻平等!
garbelini 2015年


22

在Subversion(将是tmux 1.5)中,您还可以使用#abcdef十六进制样式的颜色,这些颜色映射到最接近的256个调色板条目。您需要引号,因为它被视为字符串,而常规颜色名称被视为命名常量。另请注意,三字母速记(#f00)无效。

例:

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

1
你是否可以?我看不到如何...
Eric

5
设置选项消息-bg“ #abcdef”; 引号是必需的。
chepner 2012年

您似乎还必须使用完整的6个十六进制字符,没有3个字符的快捷方式,即#fff不起作用,您必须使用#ffffff
bschlueter 2015年



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也可以用于显示背景颜色。
Maxim Suslov '18年

您应该将其默认设置为至少4列,以将其与原始脚本区分开。
dbkeys
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.