Tmux 颜色不起作用

Tmux 颜色不起作用

据我所知,我遇到了一个有点奇怪的问题。当我使用时,tmux终端内没有颜色(所有文本都是白色,即使是像 这样的文本也是如此ls),但我的颜色在 vim 和其他类似的东西上工作正常。

在我的 .tmux.conf 文件中,我有一行set -g default-terminal "screen-256color",大多数人都说这行解决了他们的问题。我也尝试通过键入 来启动 tmux tmux -2,但这并没有改变任何东西。

我现在有点不知所措,所以提前感谢您提供的任何帮助!

操作系统:Ubuntu 16.04

Tmux 版本:2.1

答案1

我可以帮你解决症状,但不能解决问题的根源。提示的设计是在变量 PS1 中配置的。

在 tmux 之外,这是值:

$ echo ${PS1} # outside tmux
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

这是 tmux 内部的值:

$ echo ${PS1} # outside tmux
${debian_chroot:+($debian_chroot)}\u@\h:\w\$

为了修复此问题,您可以在 tmux 内运行此命令,并且提示符在当前窗口中将立即恢复正常:

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

编辑:我通过在 ~/.tmux.conf 中添加以下行解决了这个问题

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

答案2

这是一个有点老的问题。我通过创建.bash_profile文件并获取.bashrc文件解决了这个问题。

为此,请添加source ~/.bashrc到您的 .bash_profile 文件。

在我的案例中,问题是由于我的 bashrc 设置不是通过 tmux 获得的。Tmux 作为登录 shell 运行,因此它会查找文件.bash_profile或文件。我的颜色是在我的文件.bash_login中设置的。.bashrc

答案3

解决这个问题的简单方法:打开 .bash_profile

vi .bash_profile

保存以下配置

export PS1="\[$(tput bold)$(tput setb 2)$(tput setaf 2)\]\u@\h:\w $ \[$(tput sgr0)\]"
  alias ls='ls --color'
  alias dir='dir --color'
  alias vdir='vdir --color'
  alias grep='grep --color'
  alias fgrep='fgrep --color'
  alias egrep='egrep --color'

获取 bash 配置文件

source .bash_profile

tmux 上会有颜色

相关内容