回答:
答えははるかに簡単です。これを~/.tmux.conf
ファイルに入れてください:
# if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST
実行tmux attach
してセッションがある場合、セッションにアタッチされます(既にアタッチされているかどうかは関係ありません)。セッションがまだない場合は、セッションが作成されます。
tmux
ます:引数なしで呼び出された場合、新しいセッションを作成し、のこの行に到達するとすぐに2番目のセッションを作成します~/.tmux.conf
。この問題tmux ls
は、最初のセッションの作成後に実行することで確認できます。実際には、あなたがあなたのファイルでこれを入れた後、あなたは呼び出すことはできませんtmux
もう、引数なしで
alias tmux="tmux attach"
、この問題を防ぐためにエイリアスを追加する必要があります
tmux
。
セッションに名前を付けても大丈夫な場合は、new-session
次のコマンドを使用すると簡単です。
tmux new-session -A -s main
where main
は、必要に応じてアタッチまたは作成されるセッション名です。
からman tmux
:
この
-A
フラグは、セッション名がすでに存在する場合のnew-session
ように動作します。この場合、のように動作します。attach-session
-D
-d
attach-session
また、この-A
オプションは2013年3月26日からtmuxバージョンで1.8
導入されていることに注意してくださいtmux attach || tmux
。以前のバージョンの場合はを使用してください。
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"
。ヒントをありがとう!マニュアルページ:openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1
tmux: unknown option -- A
これは最近のバージョンでのみ利用できるようです。
[ -z "$TMUX" ] && exec tmux new -As .
これは私が私の家で使用するもの.bashrc
です。
attachでエラーが発生すると、これにより新しいセッションが開始されます。
tmux attach || tmux new
したがって、エイリアスが仕事をします:
tm="tmux attach || tmux new"
tmux attach
のためにtmux a
以下を追加することを検討してください .bashrc
if [ -z "$TMUX" ]; then
base_session='my_session'
# Create a new session if it doesn't exist
tmux has-session -t $base_session || tmux new-session -d -s $base_session
# Are there any clients connected already?
client_cnt=$(tmux list-clients | wc -l)
if [ $client_cnt -ge 1 ]; then
session_name=$base_session"-"$client_cnt
tmux new-session -d -t $base_session -s $session_name
tmux -2 attach-session -t $session_name \; set-option destroy-unattached
else
tmux -2 attach-session -t $base_session
fi
fi
githubリポジトリの ZSHリソースファイルでこれを使用していることがわかります。
ドリュー・フランクはここで答えました:https : //superuser.com/questions/487363/tmux-equivalent-of-screen-r
以下は、これに使用するスクリプトです(tmuxの別の問題のために画面に切り替えました)/somewhere/on/your/path/ttmux
またはシェル関数として:
#!/bin/sh
# many thanks to Drew Frank: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
(tmux ls | grep -vq attached && tmux -2 at) || tmux -2
これらの-2
オプションにより、tmuxは256色の端末サポートを想定しているため、状況に応じて適切でない場合があります。
あなたが持つ.shrcファイル内または同様にこれを使用している場合exec
、私はお勧めします
if tmux ls
exec tmux attach
else
exec tmux
fi