别名和tmux


12

在定义的别名.bash_aliases.bashrc不工作的tmux

可以在某些配置中更改此名称,以便别名在下工作tmux吗?


2
您确定问题出在tmux吗?我使用tmux大约一年,还没有看到别名的任何问题。尝试set -x在您的开头添加内容.bashrc并在tmuxcommand中运行source ~/.bashrc。也许您会发现任何错误,它将解决您的问题。
2012年

Answers:


9

tmux启动默认登录shell,所以~/.bashrc将不会执行(这随后的来源~/.bash_aliases你需要源。~/.bashrc从你的~/.bash_profile。请参阅INVOCATIONman bash


19

Chris Down的回答有正确的解释,但不是一个好的解决方法)

您的问题源于bash设计错误和tmux设计错误的结合。

默认情况下,tmux在每个窗口中启动一个登录shell。这没有任何意义:如果您将tmux设置为登录shell,则需要将default-command选项设置为tmux以外的其他选项;如果尚未将tmux设置为登录shell,则需要设置default-command选项以避免在tmux中启动登录shell。因此,在您~/.tmux.conf告诉tmux启动普通shell时,请p一下:

set-option -g default-command $SHELL

然后您.bashrc将被阅读。bash还有另一个问题,如果您按照上面的建议配置tmux,则在这里无关紧要,但是如果您以文本模式(在文本控制台上或通过SSH)登录,它将再次浮出水面。Bash ~/.bash_profile在登录外壳程序和~/.bashrc交互式外壳程序中读取,但前提是它们不是登录外壳程序。要~/.bashrc在登录shell交互时也要阅读它们,请将其添加到您的~/.bash_profile

case $- in *i*) . ~/.bashrc;; esac

+!花费了最后一部分来修复我的别名和PS1提示,但是确实做到了!
迈克尔·杜兰特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.