据我所知,我遇到了一个有点奇怪的问题。当我使用时,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 上会有颜色