Todd Freed está certo, a maneira "correta" de fazer isso é usando \;
. Tipo de. Mas há um problema.
Veja bem, você junta uma sequência de comandos tmux, dando ao tmux a conjunção ;
. Assim, em um arquivo originado pelo tmux, você pode dizer
new-session "monitor1" ; split-window -v "monitor2"
se, por algum motivo, você quisesse tudo isso em uma linha. Agora, você pode dar de que uma linha instrução composta para o tmux
comando de um shell também , mas o ;
deve ser escapado para que os interpreta shell como um outro argumento para tmux
. Assim, o equivalente ao anterior da casca é
$ tmux new-session "monitor1" \; split-window -v "monitor2"
Da mesma forma, o bind-key
comando tmux utiliza uma série de argumentos, que são o comando tmux e os argumentos a serem executados quando a tecla é pressionada. Se você deseja vincular C-q
a sequência acima a partir de um arquivo originado pelo tmux, diria
bind-key -n C-q new-session "monitor1" \; split-window -v "monitor2"
Aqui escapamos ;
do tmux , para que o tmux não o interprete como o final do bind-key
comando, mas como outro argumento para bind-key
dizer a ele para formar um comando composto como o valor vinculado da C-q
chave.
Então, o que acontece quando queremos que o tmux faça isso a partir do shell? Um monte de fuga.
$ tmux bind-key -n C-q new-session "monitor1" \\\; split-window -v "monitor2"
Primeiro, temos que escapar do shell \
e de;
cada um deles , fazendo com que o shell passe os dois caracteres como argumento para . Isso então escapa do from tmux, fazendo com que ele atribua toda a instrução composta como a ligação de .\;
tmux
;
C-q
Agora, tudo o que foi dito, se você usar uma configuração complexa do tmux como esta repetidamente, sugiro que você crie um arquivo tmux para mantê-lo:
# In split-windows.tmux:
new-session "monitor1"
split-window -v "monitor2"
bind-key -n C-s new-window "monitor4"
# ...etc...
E depois:
$ tmux source split-windows.tmux # (or even make an alias for this)
Vai ser muito mais fácil manter isso.
\;
:$ tmux bind-key -n C-q new-session "monitor1" '\;' split-window -v "monitor2"