構成ファイルは機能していますが、いくつかの問題があります。
短命のコマンド
まず、開始しているコマンド(lsのインスタンス)は非常に迅速に実行を終了します。コマンドのウィンドウとペインは作成されますが、各コマンドが終了するとすぐに消えます。
最終的な構成でこのような「ワンショット」コマンドを実際に使用することが目標である場合は、おそらくウィンドウオプションremain-on-exit
(およびセッションでset-remain-on-exit
作成されたすべてのウィンドウのデフォルトを提供するセッションオプション)を使用する必要があります。ときは、remain-on-exit
ウィンドウのために設定されている場合、コマンドが終了、それは消えません。おそらく、マッピングしたいと思うでしょうrespawn-window
(:ノートキーにrespawn-window
元のコマンドを再出現します。respawn-pane
また、で提供されていますtmuxの個々のペインが再出現する1.5)。
bind-key R respawn-window
# set global r-o-e so that initial window of initial session gets it
set -g set-remain-on-exit on
# create a session and its windows/panes
new -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# restore global r-o-e
set -g set-remain-on-exit off
# let session r-o-e inherit from global value for future windows
set -u set-remain-on-exit
または、最初のウィンドウが0ではなく1であることを気にしない場合は、グローバル値の変更を回避できます。
bind-key R respawn-window
# create a session with a throw-away window
new true
# for future windows, stay open after the command exits
set set-remain-on-exit on
# create the windows we really want
neww -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# for future windows, revert r-o-e to global value
set -u set-remain-on-exit
ls
単純化されたプレースホルダーコマンドとしてのみ使用しており、実際にウィンドウ/ペインで何らかのインタラクティブコマンドを生成する場合は、おそらく最終的に実行する予定のコマンドを生成する必要があります。あなたの意図したコマンドが中にそれを使用するために起動する時間がかかりすぎる場合はtmuxはテスト、その後、シェルまたは他の単純な対話型のコマンド(例えば置き換えtop
、sqlite3
など)。
new-session
デフォルトのコマンドです
第二に、実行中のtmuxはをコマンドの引数(例なしはtmux
)使用することと同じであるnew-session
(つまり、コマンドをtmux
同じですtmux new-session
)。あなたは、.tmux.conf
そのウィンドウ/ペインのためのセッションを作成します(new
の別名であるnew-session
)と、別のセッションが暗黙のために作成されてnew-session
起動することによって、指定されたコマンドtmuxのをコマンド引数なし。デフォルトのステータスバーを使用している場合[1]
は、「追加」セッション中にステータスバーの左側にが表示されます(で作成された最初のセッション.tmux.conf
は番号0です)。
余分なセッションの作成を避けたい場合tmux attach
は、plainの代わりに使用してくださいtmux
。からのコマンド.tmux.conf
が実行され、セッション0が作成され、クライアントは新しいセッションを作成する代わりにそのセッションにアタッチします。
splitw
はそれだけの設定ファイルを持っています-他には何もありません-それはそれが言うので、まだ分割画面を取得していません現在のセッションを確立できません。そのnew
前に追加すると、1つのウィンドウ、1つのペインが表示されます。私の人生では、起動時に2つのペインを取得することはできません。