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 tmux
commande à 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-key
commande 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-q
la 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-key
commande, mais comme un argument supplémentaire pour lui demander bind-key
de former une commande composée comme la valeur liée de la C-q
clé.
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"