tmux: Wie binde ich einen Schlüssel, um den Shell-Befehl zu starten?

9

Ich tmuxentwickle mit zwei Fenstern: einem zum Bearbeiten des Codes und einem zum Kompilieren. Ich muss sehr oft den Bereich wechseln, um den Kompilierungsbefehl zu starten (sagen Sie " mvn install").
Wie kann ich einen Schlüssel binden (z. B. " Ctrl+ B C"), um diesen bestimmten Befehl im anderen Bereich (oder überhaupt ohne Bereich) zu starten?

cdupont
quelle

Antworten:

7

C-b chat bereits eine Standardbindung, die möglicherweise unverändert bleibt. Wenn Sie ein anderes Zeichen auswählen, C-b Ckönnen Sie beispielsweise eine Bindung in Ihrer ~/.tmux.confDatei wie folgt einrichten:

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

Das -t.-bedeutet "das andere Fenster". Entersteht für den Schlüssel dieses Namens, dh die neue Zeile am Ende des Befehls.

meuh
quelle
Danke für die Lösung. Ich habe jedoch erfahren, dass der Befehl auch fällig im Terminalbereich gedruckt wird.
Elquimista
7

Die richtige Antwort auf diese Frage lautet: Verwenden Sie bind-keyz.

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

wo KEY=Cin deinem Fall.

Igor Chubin
quelle
Vielen Dank. Ist mir nicht klar, wo der Befehl ausgeführt wird? In welchem ​​Bereich wird die Ausgabe erfolgen?
CDupont
Dies sollte die akzeptierte Antwort sein. Die Antwort von meuh funktioniert, simuliert jedoch die reale menschliche Interaktion und führt dazu, dass der Befehl in das Terminalfenster gedruckt wird.
Elquimista