Verwenden Sie Strg + [0-9], um mit tmux zwischen Fenstern zu wechseln


8

Ich habe angefangen zu verwenden, tmuxaber ich finde, dass das Verwenden Ctrlb0-9sehr ärgerlich ist, weil es so oft verwendet wird.

Wie binde ich die Tastatur, damit ich nur Ctrl0-9Fenster wechseln muss (wie in Chrome)?

Ich habe versucht, es in der zu konfigurieren .tmux.conf, aber ohne Erfolg.

Dies ist meine aktuelle .tmux.conf-Datei

bind C select-pane -t :.+
set -g status-bg black
set -g status-fg white

Die Verknüpfungen sind so einfach wie erläutert, Strg + [1-9] für Registerkarte [1-9]. Der Unterschied zwischen ihnen ist, dass es derzeit nicht funktioniert und 'C-Auswahlfenster binden -t :. +' Nur etwas war, das ich ausprobiert habe
Johan Bjäreholt

Antworten:


9

Einige der Control + -Ziffern-Tastenanschläge erzeugen ziemlich standardisierte Sequenzen, aber nicht alle.

Folgendes habe ich in dem xterm gefunden , das ich zur Hand hatte:

C-1: 1  (i.e. not different form a plain 1 keystroke)
C-2: ^@
C-3: ^[
C-4: ^\
C-5: ^]
C-6: ^^
C-7: ^_
C-8: ^?
C-9: 9  (i.e. plain 9)
C-0: 0  (i.e. plain 0)

Die gleichen Sequenzen werden in iTerm 2 generiert (obwohl dies sehr konfigurierbar ist).

Wenn Ihr Terminal - Emulator ähnliche Sequenzen erzeugt, dann Sie könnten die meisten von ihnen binden (obwohl Sie den Standard, nicht-numerischen „Namen“ für die Schlüssel verwenden müssen, zB C-@oder ^@, et cetera). Sie müssen eine Möglichkeit finden, Ihr Terminal so zu konfigurieren, dass eine Sequenz für alle Tastenanschläge gesendet wird, die noch nichts anderes als den unveränderten Schlüssel senden (z. B. 1, 9 und 0 oben).

Jedoch ohne Präfix diese Schlüssel - Bindung ( bind -n …) wird wahrscheinlich viele Sachen brechen. Insbesondere ^[ist das Escape-Zeichen (das in fast allen Terminal-Steuerungssequenzen verwendet wird) ^?normalerweise das Delete-Zeichen ^@(als C-Space), das üblicherweise bei der Bearbeitung von Emacs (im Stil) usw. verwendet wird.

Ein besserer Ansatz besteht wahrscheinlich darin, Ihr Terminal so zu konfigurieren, dass die von tmux 1.8 erkannten xterm-ähnlichen "modifyOtherKeys" -Sequenzen gesendet werden (wenn Ihr xterm dies unterstützt, fordert tmux dies automatisch an):

C-1: ^[[27;5;49~
C-2: ^[[27;5;50~
C-3: ^[[27;5;51~
C-4: ^[[27;5;52~
C-5: ^[[27;5;53~
C-6: ^[[27;5;54~
C-7: ^[[27;5;55~
C-8: ^[[27;5;56~
C-9: ^[[27;5;57~
C-0: ^[[27;5;48~

Die tmux- Namen für diese Schlüssel sind genau C-0und so weiter.

Hinweis: Diese Schlüsselnamen und Sequenzen werden von tmux- Versionen älter als 1.8 nicht erkannt .

Sie würden sie so binden (in Ihrem .tmux.conf):

bind-key -n C-0 select-window -t :0
bind-key -n C-1 select-window -t :1
bind-key -n C-2 select-window -t :2
bind-key -n C-3 select-window -t :3
bind-key -n C-4 select-window -t :4
bind-key -n C-5 select-window -t :5
bind-key -n C-6 select-window -t :6
bind-key -n C-7 select-window -t :7
bind-key -n C-8 select-window -t :8
bind-key -n C-9 select-window -t :9

"Wenn Ihr xterm dies unterstützt, fordert tmux automatisch dazu auf" - könnten Sie kurz den Mechanismus erläutern / erwähnen, mit dem tmux dies erreicht?
Charles

@Charles: tmux 1.8 sendet die Sequenz ^[[>4;1m, um die Funktion " modifyOtherKeys" zu aktivieren (siehe XTerm-Steuerungssequenzen , Suche nach " modifyOtherKeys" ). Allerdings tmux 1.9 nicht mehr diese Sequenz senden .
Chris Johnsen

1

Die Antwort von @ChrisJohnsen ist perfekt. Einige Benutzer möchten jedoch möglicherweise Hilfe beim Einrichten von Iterm 2- Schlüsseln, um dieses Verhalten zu erreichen.

Gehen Sie zunächst zu "Iterm2 -> Einstellungen -> Profile -> Schlüssel" wie in:

Iterm Profilkonfiguration

Klicken Sie anschließend auf das +Symbol, um eine Voreinstellung hinzuzufügen, wenn einige Ctrl+ Numbernicht in der Liste enthalten sind (das Format in der Liste wird angezeigt ^number), wie dies bei der der Fall ist ^1, die in der Standardliste nicht verfügbar ist.

Drücken Sie Ctrl+, 1wenn Sie die Tastenkombination auswählen, und wählen Sie als Aktion "Escape-Sequenz senden". Fügen Sie dann Chris Johnsens Escape-Sequenzen ohne das ^ [hinzu, das durch die Aktion iterm2 hinzugefügt wird:

Geben Sie hier die Bildbeschreibung ein

Wiederholen Sie diesen Vorgang später für alle anderen Steuertasten und bearbeiten Sie die bereits vorhandenen.

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.