tmux: comment lier une clé pour lancer la commande shell?

9

J'utilise tmuxpour développer, avec deux volets: un pour éditer le code, et un pour le compiler. Je dois changer de volet très souvent pour lancer la commande de compilation (par exemple " mvn install").
Comment puis-je lier une clé (dites " Ctrl+ B C") pour lancer cette commande spécifique dans l'autre volet (ou sans aucun volet)?

cdupont
la source

Réponses:

7

C-b cpossède déjà une reliure standard qu'il pourrait être judicieux de laisser inchangée. Choisir un autre caractère, par exemple, C-b Cvous pouvez configurer une liaison dans votre ~/.tmux.conffichier comme suit:

bind C send-keys -t.- 'mvn install' Enter

Le -t.-moyen "l'autre volet". Enterreprésente la clé de ce nom, c'est-à-dire la nouvelle ligne à la fin de la commande.

meuh
la source
Merci pour la solution. Cependant, j'ai appris qu'il imprime également la commande dans le volet terminal en raison.
elquimista
7

La bonne réponse à cette question est: utiliser bind-key, par exemple:

tmux bind-key "$KEY" run-shell "/path/to/script.sh"

KEY=Cdans votre cas.

Igor Chubin
la source
Merci. Il n'est pas clair pour moi où la commande sera exécutée? Dans quel volet sera la sortie?
cdupont
Ce devrait être la réponse acceptée. La réponse de meuh fonctionne mais elle simule une véritable interaction humaine, ce qui entraîne l'impression de la commande dans le panneau terminal.
elquimista