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?

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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.