web-dev-qa-db-ja.com

zsh端末の起動時にデフォルトでtmuxをロードする

私の現在のワークフローは:

  1. CTRL+SHIFT+T 新しいターミナルウィンドウを起動します。新しいzshターミナルが起動します。
  2. tmuxと入力して、tmuxを起動します。

新しいターミナルウィンドウでデフォルトでtmuxをロードするにはどうすればよいですか?

26
eoinoc

少なくとも2つの方法があります。

  1. のようなものを書きます

    if [ "$TMUX" = "" ]; then tmux; fi
    

    の初めに ~/.zshrctmuxが独自のzshを生成する場合のループの条件テストに注意してください。

  2. 端末起動コマンドを次のように変更します

    xterm -e tmux
    

場合によってはtmuxなしで端末を起動する必要があるため(たとえば、既存のセッションに再接続する必要がある場合など)、2番目の方法を使用します。

40
rush

ただし、echo tmux >> ~/.zshrcソリューションには注意してください。.cshrcファイルにbashを単にスローすると、SSHで問題が発生したことを覚えています。

IIRC問題は非インタラクティブシェルで発生したため、テストする必要があります。

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
6
deviantkarot

.zshrcに追加してください

if [ -z "$TMUX" ]
then
    tmux attach -t TMUX || tmux new -s TMUX
fi

端末を起動すると、tmuxは[〜#〜] tmux [〜#〜]というセッションに自動的に接続します。

6
theJian

実際には、oh_my_zsh用のデフォルトのプラグインtmuxがあります。

プラグインリストに追加し、ZSH_TMUX_AUTOSTART=true.zshrcに設定します

詳細については、 ここ を参照してください

3
Ryan

「tmux」を.zshrcファイルに追加します。これは、zshを起動するたびに実行されます。簡単な方法:

echo tmux >> ~/.zshrc
0

これを~/.zshrc

if [ -z $TMUX ]; then; tmux; fi
0
Jerome Dalbert