zshターミナルの起動時にデフォルトでtmuxをロードする


23

私の現在のワークフローは次のとおりです。

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

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

回答:


36

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

  1. のようなものを書く

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

    の始めに~/.zshrctmux独自のをスポーンする場合の可能なループに対する条件付きテストに注意してくださいzsh

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

    xterm -e tmux

時には端末を起動する必要がある場合があるためtmux(たとえば、既存のセッションに再接続する必要がある場合)、2番目の方法を好みます。


2
またはとの異なるショートカットがxterm -e tmuxありますxterm
ニコライNフェティソフ

はい、実際に私は)=「私は第二の方法を好む」の下でそれを意味
急い

1
tmuxの最後に実行.zshrcすると、tmshを開始するzshの無限ループが発生し、tmshを開始するzshが開始されます...
トール

「ターミナル起動コマンドの変更」についてはどうすればよいですか?
eoinoc

@eoinocそれは環境に依存します。たとえば、素晴らしいwmを使用しているため、設定ファイルの文字列を変更するだけです。kdeでは、ホットキーを編集する必要があります。等々。
ラッシュ

6

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

IIRCでは、非対話型シェルで問題が発生したため、テストする必要があります。

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

"との間にスペースがありません]
n.st

5

に追加します .zshrc

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

その後、端末を起動すると、tmuxはTMUXと呼ばれるセッションに自動的に接続します。



0

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

echo tmux >> ~/.zshrc

これは、すべての新しいインスタンスで新しいセッションを開始し、終了したことのないセッションでtmuxを膨張させることです(tmuxからも不満が出ます)。良い解決策ではありません。
エクサプシー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.