web-dev-qa-db-ja.com

同じセッションのtmux複数インスタンス

最近、gnu-screenからtmuxに変換しました。私は1つのことに苦労しています。

私のワークフローはこんな感じです。いつでも実行している「タスク」ごとにセッションを作成します。そうすれば、そのセッションに接続することで、実行しているN個のタスクのいずれかに取り組むことができます。

Screenで実行でき、tmuxで実行できなかったことは、次のとおりです。同じセッションの複数のインスタンスを異なるウィンドウで開いたり接続したりして、同時に作業します。たとえば、3つの異なるファイルを編集している場合、それらを同じセッションのペイン1、2、および3で開き、同じセッションの各インスタンスを開いて、それらの3つのファイルを目の前に置くことができます。

Tmuxをアームツイストしてそれを実行させることができませんでした。 tmuxで既存の接続されたセッションに接続するたびに、他のセッションで実行したアクションが複製されます。

私はこれをうまく説明したと思います。そうでない場合は、私に知らせてください。

10
hari

基本的に、tmuxscreen -xを実行する方法を尋ねていると思いますか?次に例を示します。

# Start a new tmux session (with default session name "0").
tmux

# Start another tmux session (default name "1"), sharing windows with "0".
tmux new-session -t 0

# Start yet another tmux session (default name "2"), sharing windows with "0" (and "1").
tmux new-session -t 0

# Now you can attach to sessions with tmux attach-session -t <0|1|2>.
# Or you can omit the -t, and I think it attaches to one that isn't attached to yet.
# I don't know the exact rules for how it decides which free session to choose.

新しいセッションを作成するときにデフォルトの数値名が気に入らない場合は、-s other_nameを渡して別の名前を付けることができます。

8
jjlin

説明した内容を実現するには、tmux(C-b + c)で異なるレイアウトを使用し、(C-b +)%"を使用して分割するだけで済みます。ペインにタスクに必要なすべてのものを表示してから、C-b + n(ext)またはp(revious)または数字を使用して、コンテキストを切り替えることができます。また、C-b z(oom)はあなたの友達です。

興味深いことに、tmuxとscreenは、同じセッションの複数のビューを処理する方法が異なります

  • tmuxでは、両方のビューでまったく同じものが表示されます(ペアプログラミングをリモートで実行できます)
  • 画面では、さまざまな端末をさまざまなビューで見ることができます(これにより、物事を共有しながら独立して作業できます...これは、複数のモニターを使用して同じコマンドラインで作業する場合に役立つ可能性がありますが、正確な方法はまだわかりません! )
0
JonnyRaa