Tmux提示不遵循正常的bash提示符PS1\W

Pai*_*ige 17 bash tmux

我在我的Mac上做了一些更新,似乎打破了我的一些设置.我的.bash_profile中有以下设置

导出PS1 ="\ W $"

这在我的普通bash会话中工作,只显示当前目录而不是整个路径.但是,当我切换到tmux时,它再次显示整个路径.bash配置文件中PS1的其他更改(如颜色或其他字符)工作正常,并反映在tmux中.我已经清空了我的.tmux.conf,看看是否会导致冲突,但这种行为没有变化.

我确实在系统上创建了一个新用户并尝试了相同的PS1,它在普通会话和tmux中都运行良好.

我很困惑,因为我知道我有它的工作,无法弄清楚更新中会有什么变化.除了.bash_profile和.tmux.conf之外的哪些文件可以在这里播放?有没有办法告诉tmux从哪里拉出它的设置?

附加信息:iTerm2和Terminal Tmux 1.8版Mac OSX 10.9.1中的行为相同

小智 26

这个对我有用:在tmux/terminal中:

tmux set-option -g default-command bash
Run Code Online (Sandbox Code Playgroud)

或者简单地说~/.tmux.conf:

set-option -g default-command bash
Run Code Online (Sandbox Code Playgroud)

  • +1。是的,在 `tmux 2.7` 下仍然有效。每次我通过执行 `tmux -u new-session \; 启动 `gnome-terminal` 时,我都会自动生成几个窗格。拆分窗口 -h \; 拆分窗口 -v \; 选择窗格 -t 0 \; send-keys ' ' Cm \;` ... 经过几个小时的大量 wiki 和帖子的仔细研究,这终于对我有用了。干杯。 (2认同)

小智 12

在您的 ~/.tmux.conf 中添加以下内容

set -g default-terminal "tmux-256color" 
Run Code Online (Sandbox Code Playgroud)

来自心爱的ArchWiki tmux


Sam*_*mpa 7

我有类似的问题.如果我总是在应用bash命令的情况下启动tmux,我会得到正确的结果,如下所示:

tmux new bash
Run Code Online (Sandbox Code Playgroud)

所以,为了简化这一点,我刚刚在〜/ .bash_aliases文件中创建了一个别名,我一直在使用它:

alias tn='tmux new bash'
Run Code Online (Sandbox Code Playgroud)

这只适用于第一个窗口.创建新窗口时,必须通过bash在终端中执行再次启动bash .


ds-*_*msk 7

将以下行添加到~/.tmux.conf

set -g default-terminal "screen-256color"
Run Code Online (Sandbox Code Playgroud)

不要忘记保存~/.tmux.conf并重新启动tmux以使更改生效。


Cod*_*256 -5

将以下内容添加到您的.tmux.conf

new -n WindowName bash --login
Run Code Online (Sandbox Code Playgroud)

您可以将WindowName第一个窗口替换为您想要的任何名称。当bash以这种方式调用时,它会获取您的.bash_profile.bash_rc.profile等,这是您更改$PS1.