it-swarm.cn

使256种颜色在tmux中工作

我有256种颜色,在konsole,。我想尝试一下tmux,因为与屏幕不同,它似乎支持vi模式。但是,我发现提示的颜色出现了,这很可能是因为我有256色模式的提示。我需要怎么做才能使tmux识别所有256种颜色?

186
xenoterracide

Tmux FAQ 明确建议不要在Shell初始化文件中将TERM设置为screen或screen-256color以外的任何其他内容,所以不要这样做!

这是我使用的:

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

并在我的.tmux.conf中:

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

tmux别名为“ tmux -2”也可以解决问题。

271
cannedprimates

尝试在您的bashrc或zshrc中显式设置256种颜色:

export TERM=xterm-256color

要么

export TERM=screen-256color

如果使用屏幕术语设置时tmux无法正确清除背景颜色时遇到问题,可以尝试:

export TERM=screen-256color-bce
42
redacted

按照 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

20
user1338062

最新版本的ncurses附带tmux-256colorterminfo条目( [〜#〜] faq [〜#〜] =确实提到了这一点)。例如,使用tmux-256color而不是screen-256color是正确显示了斜体(屏幕不支持斜体)。

因此,如果您拥有最新的ncurses软件包,则以下内容也将起作用:

set -g default-terminal "tmux-256color"
13
Gabriel Parent

对于使用最新tmux的用户,应使用已接受答案中的.tmux.conf选项。

我只想补充一点,您可能需要重新启动tmux才能使新配置生效:

tmux kill-server && tmux

有趣的是,答案中没有任何地方提到这一点,我花了一段时间才弄清楚。

4
mast3r

如果您运行的是比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)我的颜色并不疯狂。大进步。

(这里是到存储库页面的链接,顺便说一句): https://launchpad.net/~hnakamur

3
zzxyz

我无法解释为什么这样做有效,但为我解决了问题。

〜/ .tmux.conf

set-option -g default-command bash
2
John Snow

这是我的解决方案..。我编辑.bashrc文件并添加

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

希望它对您有用

1
Wira Bhakti

对这里的所有其他答案表示感谢,这给了我提示,但随后似乎没有必要修改全局TERM设置AND ~/.tmux.conf

我最终仅在要使用tmux时才使用别名来设置TERM。只需在~/.bashrc(或您使用的任何Shell配置文件)的末尾添加此单行代码即可。

alias tmux='TERM=xterm-256color tmux'

而已。有趣的是,启动tmux之后,TERM会自动重置为“屏幕”,但是无论如何颜色仍然有效。因此,我想tmux也会很高兴(因为不会弄乱其TERM环境?)。

0
RayLuo

~/.tmux.conf为我工作-

set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"

经过测试

  • Tmux 2.7,Ubuntu 16.04、18.04
  • Tmux 2.9,CentOS
0
user3496912