Todd Freed a raison, la méthode "correcte" consiste à utiliser cette méthode \;. Sorte de. Mais il y a un problème.
Vous voyez, vous joignez une séquence de commandes tmux ensemble en donnant la conjonction à tmux ;. Ainsi, dans un fichier créé par tmux, vous pourriez dire
new-session "monitor1" ; split-window -v "monitor2"
si, pour une raison quelconque, vous vouliez tout cela sur une seule ligne. Maintenant, vous pouvez donner cette instruction composée d' une ligne à la tmuxcommande à partir d' une coquille aussi , mais le ;doit être échappé pour que les interprète shell comme un autre argument en faveur tmux. Ainsi, l’équivalent de ce qui précède de la coque est
$ tmux new-session "monitor1" \; split-window -v "monitor2"
De même, la bind-keycommande tmux prend une série d'arguments qui sont la commande tmux et les arguments à exécuter lorsque la touche est enfoncée. Si vous souhaitez lier C-qla séquence ci-dessus à partir d'un fichier créé par tmux, vous pouvez dire
bind-key -n C-q new-session "monitor1" \; split-window -v "monitor2"
Ici, nous avons échappé à ; from tmux , de sorte que tmux ne l'interprète pas comme la fin de la bind-keycommande, mais comme un argument supplémentaire pour lui demander bind-keyde former une commande composée comme la valeur liée de la C-qclé.
Alors que se passe-t-il lorsque nous voulons que tmux le fasse depuis le shell? Beaucoup d'échapper.
$ tmux bind-key -n C-q new-session "monitor1" \\\; split-window -v "monitor2"
Premièrement, nous devons échapper le \ et le ;chacun du shell , le shell transmettant les deux caractères \;comme argument tmux. Cela échappe ensuite à ;tmux, ce qui lui permet d’affecter la totalité de la déclaration composée à la liaison de C-q.
Maintenant, tout ceci étant dit, si vous utilisez une configuration complexe de tmux comme celle-ci à plusieurs reprises, je vous conseillerais de créer un fichier tmux pour le conserver:
# In split-windows.tmux:
new-session "monitor1"
split-window -v "monitor2"
bind-key -n C-s new-window "monitor4"
# ...etc...
Et alors:
$ tmux source split-windows.tmux # (or even make an alias for this)
Ce sera beaucoup plus facile à maintenir de cette façon.
\;:$ tmux bind-key -n C-q new-session "monitor1" '\;' split-window -v "monitor2"