如何强制其使用zsh?
#1 楼
set-option -g default-shell /bin/zsh
或~/.tmux.conf
中的。您可以在Fedora上使用。
您可以使用
/etc/tmux.conf
重新加载配置,例如,<leader>: source-file <conf file>
您需要为每个tmux实例执行此操作。否则,您可以使用
<C-b>: source-file ~/.tmux.conf
重新启动tmux 评论
如果这对您不起作用,请确保已重新启动tmux。似乎很明显,但是花了我一个小时才弄清楚!
–安迪·史密斯(Andy Smith)
2012年9月20日20:55在
顺便说一句:重新启动tmux意味着杀死所有tmux; tmux。花了我一段时间才弄清楚。
–js-coder
2012年12月21日下午14:48
可以在不终止服务器的情况下重新加载配置:bind R源文件〜/ .tmux.conf \;显示消息“配置已重新加载。”。
–ДМИТРИЙМАЛИКОВ
13年7月2日在8:01
或者只是从命令行运行tmux源文件〜/ .tmux.conf。
–石油
14-10-29在12:43
@ js-coder:为了更彻底地杀死您的tmux服务器,我建议改为使用tmux kill-server。
– Chuom
15年2月13日在22:32
#2 楼
首先,通过在命令行中运行以下命令,确保将默认Shell正确设置为zsh:任何外壳的选项。
chsh -s $(`which zsh`) $USER
评论
不需要设置用户外壳程序(chsh -s),因为tmux提供了独立于此的选项。
–马哈茂德·古德西
17年5月30日下午6:00
我认为使用$ SHELL变量更可靠。但这增加了额外的步骤和混乱,因此我更喜欢公认的答案。
–DebugXYZ
19年1月13日在22:05
这比公认的答案更好。我的zsh未安装在/ bin / zsh中。
–HappyFace
19年8月4日在17:56
#3 楼
将此行放在~/.tmux.conf
的底部set-option -g default-command "reattach-to-user-namespace -l zsh"
添加该行之后,请杀死并重新启动tmux服务器,一切都应能正常工作。
评论
嗯,是否有任何迹象表明re5et(OP)在Mac上,或者已安装该包装程序?
–克里斯·约翰森(Chris Johnsen)
2012年2月1日,7:13
我认为此答案仅适用于Mac OS X
– EhevuTov
13年7月25日在6:29
tmux kill-server是结束所有tmux服务器的命令
–基思笑脸
13-10-14在17:05
尽管这不是OP所要求的答案,但我还是进入了这个线程,的确确实是在OS X上,使用了这个包装器,这是我需要的解决方案。所以谢谢!
–乔斯·奥尔本(Jose Alban)
15/09/24在11:47
这与set-option -g default-shell有何不同?以上似乎不适用于Fish壳。
–汤米(Tommy)
16年2月9日在1:50
#4 楼
tmux似乎使用了SHELL
环境变量,因此以下操作应该起作用:SHELL=/usr/bin/zsh tmux
或
env SHELL=/usr/bin/zsh tmux
评论
不知道为什么这被否决了。这似乎是正确的:一个常见的问题是例如使用不同的外壳iTerm,但将登录shell保留为/ bin / bash,以确保没有任何非迭代中断。 iTerm不会将$ SHELL设置为新的外壳程序名称(不确定原因),并且bash初始化会将其在启动时设置为登录外壳程序(如果未设置)。如果未明确设置default-shell,则tmux然后使用此值。
–山姆·布莱曼
16年4月4日在8:38
是的..也许env SHELL = / usr / bin / zsh tmux更好? (更新了答案)。
–蓝色
16年11月6日,0:33
#5 楼
如果要强制tmux使用与环境变量中指定的外壳相同的外壳,则可以在~/.tmux.conf
或/etc/tmux.conf
中使用:# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
。
要使更改真正生效,可能需要先
tmux kill-server
,然后再tmux
重新启动tmux。评论
这是唯一对我有用的答案(tmux kill-server命令)
–未定义
18年1月27日,0:30
#6 楼
使用chsh(1)
:chsh -s /bin/zsh $USER
评论
我已经有了这个设置,但是tmux忽略了它。
–re5et
2011-3-6在5:33
#7 楼
注销并再次登录解决了我的问题。回显$SHELL
时仍为/bin/bash
,但注销后更改为/usr/bin/zsh
#8 楼
接受的答案对我不起作用。我必须在我的
~/.tmux.conf
中同时写set -g default-shell "/bin/bash"
和
set -g default-command "/bin/bash"
—不要忘记运行以下命令来重新加载tmux.conf:
tmux kill-server; tmux
我在gnome-shell模拟器的Ubuntu 18下使用
tmux -V
2.6。我还通过https://github.com/增强了tmux samoshkin / tmux配置看看,真的很棒。
#9 楼
将此添加到您的~/.tmux.conf
set -g default-command /usr/local/bin/fish
#10 楼
对我来说,我必须替换:default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
用
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
在
.tmux.conf
中运行命令
tmux kill-server; tmux
评论
这是答案superuser.com/a/1370909/174140的副本。
–174140
19/09/18'9:31
@john我使用了set-option -g而不是set -g。不同版本的tmux最有可能
–阿里·阿敏(Ali Amin)
19-09-19在11:24
set是set-option的别名。
–174140
19-09-19在11:28
评论
弄清楚了。可以在tmux配置中设置以下内容:set -g default-command / bin / zsh set -g default-shell / bin / zshFWIW,如果您已设置default-shell,则无需设置default-command。