Todd Freedは正しい\;
です。これを行う「正しい」方法はを使用することです。並べ替え。しかし、障害があります。
tmuxに論理積を与えることにより、一連のtmuxコマンドを結合します;
。したがって、tmuxをソースとするファイルでは、
new-session "monitor1" ; split-window -v "monitor2"
何らかの理由で、それをすべて1行にしたい場合。これで、その1行の複合ステートメントをtmux
シェルからコマンドに与えることもできますが、シェルが;
を別の引数として解釈できるようにエスケープする必要がありますtmux
。したがって、シェルからの上記と同等のものは
$ tmux new-session "monitor1" \; split-window -v "monitor2"
同様に、tmux bind-key
コマンドは、tmux コマンドである一連の引数と、キーが押されたときに実行される引数を取ります。C-q
tmuxをソースとするファイル内から上記のシーケンスにバインドする場合、次のようになります。
bind-key -n C-q new-session "monitor1" \; split-window -v "monitor2"
ここで;
tmuxをエスケープして、tmuxがbind-key
コマンドの終わりとして解釈するのではなくbind-key
、C-q
キーのバインド値として複合コマンドを形成するように指示する別の引数として解釈するようにしました。
では、tmuxにシェルからそれを行わせたい場合はどうなりますか?たくさんの脱出。
$ tmux bind-key -n C-q new-session "monitor1" \\\; split-window -v "monitor2"
まず、我々は脱出しなければならない\
し、;
それぞれからシェルシェルは2つの文字をパスさせる、\;
の引数としてtmux
。これ;
によりtmuxからエスケープされ、複合ステートメント全体がのバインディングとして割り当てられC-q
ます。
さて、このように複雑なtmuxセットアップを繰り返し使用する場合は、tmuxファイルを作成して保存することをお勧めします。
# In split-windows.tmux:
new-session "monitor1"
split-window -v "monitor2"
bind-key -n C-s new-window "monitor4"
# ...etc...
その後:
$ tmux source split-windows.tmux # (or even make an alias for this)
その方法を維持する方がずっと簡単です。
\;
:$ tmux bind-key -n C-q new-session "monitor1" '\;' split-window -v "monitor2"