
私はzsh()を使用するようにiTermセッションを設定しましたが、現在のデフォルトで/usr/local/bin/zsh
はなくzshを使用するようにtmuxを設定しようとしています。/bin/bash/
これまで私が読んだことは、私がどこにいなければならないのかを知りませんでした。私が逃したかもしれないアイデアや内容がありますか?
現在の設定に関するいくつかの詳細は次のとおりです。ありがとうございます!
ヘルスチェック:
1) iTermを開きます
echo $SHELL
/bin/bash
ps -p $$
PID TTY時間CMD 19626 ttys000 0:00.52 /usr/local/bin/zsh
2) tmuxの実行
tmux
echo $SHELL
/usr/local/bin/zsh
構成:
iTermプロファイル>一般>コマンド:
/usr/local/bin/zsh
.tmux.confから:
オプション設定 -g デフォルトシェル /usr/local/bin/zsh
答え1
以下を設定する必要がありますdefault-command
。
set -g default-command /usr/local/bin/zsh
default-shell
変数は空のときにログインシェルを作成するためにのみ使用されます。default-command
これがデフォルトです。
あるいは、単にデフォルトのシェルをoneに変更することもできますzsh
。この場合、tmux
非ログインシェルの代わりにログインシェルが実行されます。
答え2
@cuonglmが言ったことに加えて.tmux.conf
。
たとえば、私はMacのiTermで一般的なコピーと貼り付けの統合を使用します。
set-option -g default-command "reattach-to-user-namespace -l bash"
...zshで正しく機能するには、次のように変更する必要があります。
set-option -g default-command "reattach-to-user-namespace -l zsh"
答え3
このtmux設定を通常のデフォルト設定から切り離したい場合。エレガントな解決策は、$SHELL
以下を組み合わせて使用することです-L
。
エイリアスを次のように設定します。
alias zshtmux='SHELL=/usr/local/bin/zsh tmux -L zsh'
これにより、名前の異なるtmuxインスタンスが作成されますzsh
。このインスタンスのデフォルトシェルは、/usr/local/bin/zsh
他のtmuxインスタンスとは別に一時的に変更されます。
ここでは、次のインスタンスを使用できますzshtmux
。
zshtmux new
zshtmux attach