我正在尝试开始使用 tmux 并“修复”tmux 无法在启动时加载的问题.bashrc
。我尝试了所有修复方法,例如添加source ~/.bashrc
或~/.profile
创建~/.bash_profile
并添加。即使我启动 tmux 并运行,也source ~/.bashrc
没有任何变化。
我.bashrc
对用户名后的目录显示方式以及颜色做了一些小改动。当我启动 tmux 时,目录的显示方式与未进行任何更改时相同,.bashrc
并且颜色与文本颜色相同,而在普通 bash 会话中并非如此。
有人知道如何解决这个问题吗?
答案1
由于您没有透露有关您的确切信息.bashrc
,我将扮演一个通灵者并远程读取它。
有一种情况类似于
case "$TERM" in
xterm-color|xterm-256color) …
并且你的提示取决于它。详细说明或许喜欢
case "$TERM" in
xterm-color|xterm-256color) color_prompt=yes;;
esac
然后例如
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
如果是这种情况,那么罪魁祸首就是:tmux 使用screen
,tmux
或类似字符串(例如tmux-256color
)$TERM
。 tmux 使用的字符串不满足.bashrc
启用彩色提示的条件。
在 Bash 内部的 tmux 中调用echo "$TERM"
。无论您得到什么,它都应该能够处理颜色;因此只需将其添加到条件中即可。示例:
case "$TERM" in
xterm-color|xterm-256color|screen) …
$TERM
您可以从以下答案中了解这个问题。
答案2
埋在评论里,我发现有一种比修改 .bashrc 的那部分更干净的解决方案。如果你有一个足够“现代”的 .bashrc,那case "$TERM"
行将是:
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
在这种情况下,您只需将此设置添加到您的.tmux.conf
,而不会造成任何功能损失:
set -g default-terminal "screen-256color"