使256种颜色在tmux中工作


177

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


2
tmux -2我必须在终结者中执行此操作,这让我有些惊讶。该-2标志告诉tmux强制使用256种颜色...您的终端机是否喜欢... dun dun dunnn:P
Dylan

Answers:


253

TMUX FAQ明确建议不要设置TERM比在你的shell init文件屏幕或屏幕256color其他任何东西,所以不要做吧!

这是我使用的:

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

并在我的.tmux.conf中:

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

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


4
我喜欢最好在.tmux.conf中进行设置的方法……使用shell进行设置似乎并不正确
xenoterracide 2010年

6
奇怪的。您不需要tmux -2OSX,但需要使用Gnome Terminal。感谢您提供的信息,添加到我的别名中!
FX

1
在Kubuntu 13.10中,仅.tmux.conf设置并不能使我恢复256种颜色(在vim可视模式下突出显示了该颜色),但别名有效。肯定会首选.tmux.conf文件解决方案。
雅各布·道尔顿

1
将.tmux.conf默认终端安装到Ubuntu机器(从OS X Terminal)中,这是我所需要的。
Duelin标记

2
对我来说,似乎我需要做的就是TERM=screen-256color tmux不创建.tmux.conf文件。我想念什么吗?
joelostblom 2015年

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 ...我想把它放到我的shell的rc中确实行得通...它在执行tmux时忽略了设置的TERM env变量,这真令人讨厌...我想我必须在我的rc中放一个条件。
xenoterracide

1
-bce与tmux不兼容。Tmux不支持背景色擦除:
Dustin Kirkland

1
我在roxterm遇到了这个问题。希望向其中添加roxterm可以帮助人们找到与我相同的解决方案。我最终会进入vim,选择行会使它们消失。极难搜寻。roxterm默认情况下仅设置$ TERM = xterm,这是不好的。
BeepDog 2014年

5
-1,您不应在shell初始化文件中无条件地进行设置。将其设置为xterm-256color在tmux内部也会覆盖它,而将其设置为screen-256color在tmux外部可能会导致显示错误。
nyuszika7h 2014年

19

根据tmux常见问题解答,将此添加到您的~/.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对我来说已经足够了。我不需要设置别名(尽管可能不会造成伤害)。
anishpatel

仅配置tmux对我有用。别名不足。
哈里·莫雷诺

12

最新版本的ncurses带有tmux-256color terminfo条目(FAQ确实提到了这一点)。例如,使用tmux-256color而不是screen-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)我的颜色不是很疯狂。大进步。

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


2

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

〜/ .tmux.conf

set-option -g default-command bash

1
我尝试了这作为最后的手段,并且令人惊讶的是它起作用了!
v0d1ch

1

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

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

希望它对您有用


10
为什么要打扰if?您可以只设置变量。
joeytwiddle
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.