Binden eines Befehls in tmux ohne Verwendung des Präfixschlüssels

45

Ist es möglich, einen tmux-Befehl an eine Tastenkombination zu binden und direkt zu verwenden, ohne zuvor das Präfix zu drücken?

Ich finde es C-b + nzu umständlich, die C-1Fenster zu wechseln, also habe ich mich gefragt, ob ich zum Beispiel binden könnte , auf Fenster 1 zu wechseln.

Oder gibt es vielleicht eine Möglichkeit, die Verknüpfung im Terminalemulator zu versenden, C-b + 1wenn ich drücke C-1?

Vielen Dank!

Ivan
quelle
1
Ich benutze nur set -g prefix C-a.
Grawity
Ich auch, ich habe gerade Cb auf meine Frage gesetzt, weil das die Standardeinstellung ist.
Ivan

Antworten:

45

Verwenden Sie für Ihr Beispiel:

bind-key -n C-1 select-pane -t 1

Das Argument -n für bind-key bedeutet kein Präfix.

Autoplektisch
quelle
1
Vielen Dank! Damit ist es fast geschafft, außer es erkennt keine Zahlen, heißt es unknown key: C-1. Wenn ich einen Buchstaben benutze, funktioniert es. Wissen Sie, wie ich eine Zifferntaste festlegen kann?
Ivan
6
@Ivan: Die üblichen Codes für Steuertastenanschläge stammen aus ASCII. ASCII definiert keine Codes für C-1..C-9. Die Standard-ASCII-Steuerzeichen sind C- @, Ca..Cz, C- [, C- \, C-], C- ^, C-_ und C- ?. Die meisten Terminals unterstützen keine unterschiedlichen Codes für die meisten geänderten Tastenanschläge (obwohl viele Modifikatoren für Pfeiltasten und Funktionstasten unterstützen). Verwenden Sie wahrscheinlich besser F1anstelle von C-1(beachten Sie auch, dass die Bereichsnummern bei 0 beginnen und nicht bei 1: Binden Sie F1 an die Auswahl von Bereich 0, F2 bis 1 usw.).
Chris Johnsen
2

Ich habe hier einen Streit mit der akzeptierten Antwort.

Laut tmux(1), -n is an alias for -T root. Das Einschließen -nbedeutet also nicht, dass "kein Präfix" vorhanden ist, sondern, dass der Befehl an die Stammtabelle gebunden wird, was "nicht empfohlen" ist.

tmux(1):

Die Stammtabelle wird für Tasten verwendet, die ohne die Präfixtaste gedrückt werden: Wenn Sie 'c' an ein neues Fenster in der Stammtabelle binden (nicht empfohlen), wird durch einfaches 'c' ein neues Fenster erstellt

Was dies zu sagen scheint ist, dass:

bind -n c new-window

Erstellt ein neues Fenster, wenn cgedrückt wird.

Der trockene Humor in der Formulierung des Autors "nicht empfohlen" ist die Tatsache, dass "c" in einer durchschnittlichen tmux-Sitzung natürlich mehrmals gedrückt wird, da "c" der dritthäufigste Buchstabe in Englisch ist .

Ein weiteres Beispiel ist das schnelle Umschalten des tmux-Fensters (mit den PageUp / PageDown-Tasten):

unbind NPage
unbind PPage
bind -n PPage previous-window
bind -n NPage next-window
g33kz0r
quelle