zshを使用するようにtmuxを構成する

zshを使用するようにtmuxを構成する

私は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

関連情報