tmux:新しいペインウィンドウの作成が機能しません

tmux:新しいペインウィンドウの作成が機能しません

muttとOfflineimapという2つのウィンドウを持つ新しいセッションが必要です。オフラインマップウィンドウは、2つの異なるオフラインimapインスタンス(他の設定ファイルを含む)を使用して2つに分割する必要があります。

tmux new-session -d -s mail -n mutt mutt
tmux new-window -d -t mail -n offlineimap "offlineimap -c ~/.dotfiles/mutt/dev.offimap"
tmux split-window -d -v -t mail "offlineimap -c ~/.dotfiles/mutt/trash.offimap"

muttウィンドウのみが生成され、Offlineimapウィンドウは生成されません。 =>このコードにはどのような問題がありますか?

編集する:

内容を変更してみると効果が""ありsleep 1000ました。

編集2:

2番目のtmuxウィンドウが「最初のオフラインマップと同じメタデータを使用」したため、作成直後に終了することがわかりました。

ベストアンサー1

あなたは次のように書きました:

tmux new-session -d -s mail -n mutt mutt
tmux new-window -d -t mail -n offlineimap "offlineimap -c ~/.dotfiles/mutt/dev.offimap"
tmux split-window -d -v -t mail "offlineimap -c ~/.dotfiles/mutt/trash.offimap"

tmux_mail.shこれを試してみてください。または希望の名前で作成してください。

#!/bin/bash

tmux \
    -v \
    new-session \
        -d \
        -s mail \
        -n mutt \
        mutt \
    \; \
    new-window \
        -d \
        -n offlineimap \
        "offlineimap -c ~/.dotfiles/mutt/dev.offimap" \
    \; \
    split-window \
        -d \
        "offlineimap -c ~/.dotfiles/mutt/trash.offimap" \
    \; \
    attach

保存して実行可能にしたら、コマンドプロンプトで実行して新しいtmuxメールセッションをお楽しみください。

$ ./tmux_mail.sh

説明する

  • \;各引数new-windowまたはsplit-window引数を単一の連続tmuxコマンドの一部にします。
  • したがって、これらすべてが単一のコマンドの一部として指定されている場合は、ターゲット-tセッションを指定する必要はないので省略します。-ttmux
  • 最後の行を除くすべての行は、bash行の連続\(バックスラッシュ、空白、行を返す)を使用してbashが実行したいコマンドラインを続けながらコマンド全体を作成できますが、各コマンドにはほぼ1つのオプションがあります。読みやすく明確にするために、このスクリプトを長期的に維持するのに役立ちます。
  • -v詳細なロギングの場合は、構文の概要に従って最初に指定する必要があります。man tmux
  • -d必要なオプションを完全に指定できるまで、現在の端末に接続するデフォルトの動作をすぐに実行しないように分離する必要があります。
  • attachしたがって、最後にtmuxが実行したいすべてのオプションが完了したら、実際に端末で最終結果を確認する必要があります。
  • たとえば、プログラムが非対話型で実行および終了すると、プログラムをecho実行してからプログラムが終了するとウィンドウを閉じるtmuxでも同様の状況が発生します。

したがって、コマンドが実際に機能し、すぐにエレガントにシャットダウンせず、tmuxの外部でmuttうまくofflineimap機能する限り、これらのコマンドを使用すると、tmuxで動作して必要なtmuxセッションを作成する必要があります。

おすすめ記事