我在Mac上做了一些更新,似乎打破了我的一些设置。我的.bash_profile
中有以下内容导出PS1 =“\ W $”
这在我的正常bash会话中工作,只显示当前目录而不是 整条道路。但是,当我切换到tmux时,它再次显示整个路径。 bash配置文件中PS1的其他更改(如颜色或其他字符)工作正常,并反映在tmux中。我已经清空了我的.tmux.conf,看看是否会导致冲突,但这种行为没有变化。
我确实在系统上创建了一个新用户并尝试了相同的PS1,它在普通会话和tmux中都运行良好。
我很困惑,因为我知道我有它工作,无法弄清楚更新中会发生什么变化。除了.bash_profile和.tmux.conf之外的哪些文件可以在这里播放?有没有办法告诉tmux从哪里拉出它的设置?
其他信息: iTerm2和终端中的行为相同 Tmux 1.8版 Mac OSX 10.9.1
答案 0 :(得分:23)
这个对我有用: 在tmux / terminal中:
tmux set-option -g default-command bash
或者只是放入~/.tmux.conf
:
set-option -g default-command bash
答案 1 :(得分:7)
我有类似的问题。如果我总是在应用bash命令的情况下启动tmux,我会得到正确的结果,如下所示:
tmux new bash
因此,为了简化这一点,我刚刚在〜/ .bash_aliases文件中创建了一个别名,我一直在使用它:
alias tn='tmux new bash'
这仅适用于第一个窗口。创建新窗口时,必须通过在终端中执行bash
来再次启动bash。
答案 2 :(得分:2)
我遇到了同样的问题,经过一些研究后,我将以下命令添加到~/.tmux.conf
:
set-option -g default-command "reattach-to-user-namespace -l /opt/local/bin/bash --login"
我使用的是OSX 10.9.5和iTerm2 Build 2.0.0.20141103,bash 4.3.30(1)-release,tmux 1.9a。 Bash和tmux来自macports。
答案 3 :(得分:1)
我知道我参加聚会已经很晚了。但这是对我有用的方法。
我刚刚在 TERM 中添加了 -256color
。
echo $TERM
。我们将使用它的输出。我得到了 screen
。在下一步中使用您自己的。vim ~/.tmux.conf
并添加以下行:set -g default-terminal screen-256color
。使用 tmux-256color
对我不起作用。我使用的是 Ubuntu 18.04、bash 4.4.20、tmux 2.6。
答案 4 :(得分:0)
将tmux与byobu一起使用时,可以尝试byobu-prompt
命令。它会询问您是否需要bash颜色提示。回答“是”后,提示将更改为通常的user @ host。
答案 5 :(得分:0)
将以下行添加到〜/ .tmux.conf
set -g default-terminal "screen-256color"
答案 6 :(得分:0)
答案 7 :(得分:0)
更好地通过terminfo
命令来检测系统的infocmp
数据库知道哪些终端。我的~/.tmux.conf
中包含以下内容:
# Last match wins
if-shell "infocmp xterm-256color" "set-option -g default-terminal xterm-256color"
if-shell "infocmp screen-256color" "set-option -g default-terminal screen-256color"
if-shell "infocmp tmux" "set-option -g default-terminal tmux"
如果infocmp
shell命令成功,则执行以下set-option
tmux命令。
答案 8 :(得分:-2)
将以下内容添加到.tmux.conf
:
new -n WindowName bash --login
您可以将WindowName
替换为您想要命名的第一个窗口。以这种方式调用bash
时,会向您的.bash_profile
,.bash_rc
,.profile
等提供来源,您可以在此处更改$PS1
。