Reload von tmux config entbindet keine Schlüssel (bind-key ist kumulativ)

33

Ich habe mit verschiedenen tmux-Tastenkombinationseinstellungen experimentiert und dabei Folgendes festgestellt:

Wenn ich meine tmux-Konfiguration neu lade (aus tmux heraus), bleiben die Tastaturbelegungen, die ich einmal geladen hatte, geladen. Die einzige Möglichkeit, dies zu bereinigen, besteht darin, alle tmux-Sitzungen zu beenden und neu zu starten. Es sieht also so aus, als würde sich tmux alle zuvor geladenen Tastenkombinationen merken und sie nur bei einem Neustart oder durch explizites Aufheben der Bindung entfernen.

So erstellen Sie dies neu:

  • Öffne ein Terminal (A)
  • starte tmux
  • Überprüfen Sie, ob die Tastenkombination eine Uhr anzeigt (drücken Sie PREFIX C-t)
  • Drücken Sie PREFIX ?, um die Tastenkombination in der Liste anzuzeigen
  • bearbeiten ~/.tmux.conf
  • füge eine Tastenkombination hinzu ( bind C-t display "Keybinding C-t")
  • tmux config ( PREFIX : source-file ~/.tmux.conf) neu laden
  • Überprüfen Sie, ob die Tastenkombination funktioniert (drücken Sie PREFIX C-t)
  • Drücken Sie PREFIX ?, um die neue Tastenkombination in der Liste anzuzeigen
  • ~/.tmux.conferneut bearbeiten
  • entferne die Tastenkombination (also entferne bind C-t display "Keybinding C-t")
  • tmux config ( PREFIX : source-file ~/.tmux.conf) neu laden
  • Überprüfen Sie, ob die Tastenkombination funktioniert (drücken Sie PREFIX C-t). Es wird weiterhin "Tastenkombination" angezeigt.
  • Drücken Sie, um PREFIX ?zu sehen, dass die neue Tastenkombination noch in der Liste enthalten ist
  • Beenden Sie tmux
  • Geben Sie tmux ein
  • Überprüfen Sie, ob die ursprüngliche Tastenkombination wieder funktioniert (drücken Sie PREFIX C-t). Jetzt sollte wieder eine Uhr angezeigt werden
  • Drücken Sie PREFIX ?, um anzuzeigen, dass die neue Tastenkombination aus der Liste entfernt wurde

Meine Frage: gibt es eine Möglichkeit, tmux anzuweisen, alle geladenen Configs zu "vergessen" und dann zu laden .tmux.conf?

Niels Bom
quelle

Antworten:

19

Nach der tmux(1)Manpage unbind-key -aist es das , wonach Sie suchen.

Beachten Sie, dass tmuxein Server ausgeführt wird, der erst beendet wird, wenn alle Sitzungen geschlossen sind und die Schlüsselbindungen pro Server gelten. Sobald Sie eine Bindung erstellt haben, bleibt diese über alle Client-Abgänge hinweg bestehen.

Das heißt, setzen Sie es unbind-key -aganz oben in Ihre Konfigurationsdatei und beim erneuten Laden der Konfiguration sollte es tun, was Sie wollen - lösen Sie alle Bindungen und fangen Sie von vorne an zu binden. Oder - wenn Ihre Modifikationen kleiner sind - binden Sie nur das ab, was Sie ändern möchten.

peterph
quelle
Ja, und das habe ich bereits in meiner Frage angegeben. Aber anstatt alle möglicherweise gebundenen Schlüssel manuell "zurückzusetzen", möchte ich, dass tmux mit einem "sauberen Slate" neu startet und dann die Konfigurationsdatei neu lädt.
Niels Bom
@NielsBom Check aktualisierte Antwort bitte
Peterph
Du hast recht, das unbind-key -aentfernt alle Tastenkombinationen. Ich werde Ihre Antwort als richtig markieren, aber um der anderen Zuschauer willen werde ich auch den "Hack" hinzufügen, den ich angewendet habe, um ein Problem mit zu beheben unbind-key -a.
Niels Bom
Siehe meine Antwort für meine Lösung.
Niels Bom
16

Die richtige Lösung (von Peter

@Peterph hat also die richtige Antwort gegeben, unbind-key -adie folgendes bewirkt: (man tmux)

Wenn -a vorhanden ist, werden alle Tastenzuordnungen entfernt.

Eine praktikable Lösung

Das Problem (für mich) ist, dass "alles" eigentlich alles bedeutet. Einschließlich der Tastenkombinationen, mit denen tmux ausgeliefert wird . Wenn Sie den unbind-key -aBefehl tmux sofort ausführen, sind keine Tastenkombinationen mehr vorhanden, sodass Sie nicht einmal mehr in den Befehlsmodus wechseln oder grundsätzlich etwas tun können.

Mein (ziemlich hässlicher) Fix dafür ist der folgende:

  • erstelle ein .tmux.reset.conf, das alle keybindings entfernt und dann alle diejenigen neu bindet, die tmux standardmäßig hat
  • Quelle, die an der Spitze Ihres zurückgesetzt .tmux.conf

Meine .tmux.conf:

# always load the reset file first
source-file ~/.tmux.reset.conf

Meine .tmux.reset.conf:

# First remove *all* keybindings
unbind-key -a
# Now reinsert all the regular tmux keys
bind-key C-b send-prefix
bind-key C-o rotate-window
bind-key C-z suspend-client
bind-key Space next-layout
bind-key ! break-pane
bind-key " split-window
bind-key # list-buffers
bind-key $ command-prompt -I #S "rename-session '%%'"
bind-key % split-window -h
bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key ' command-prompt -p index "select-window -t ':%%'"
bind-key ( switch-client -p
bind-key ) switch-client -n
bind-key , command-prompt -I #W "rename-window '%%'"
bind-key - delete-buffer
bind-key . command-prompt "move-window -t '%%'"
bind-key 0 select-window -t :0
bind-key 1 select-window -t :1
bind-key 2 select-window -t :2
bind-key 3 select-window -t :3
bind-key 4 select-window -t :4
bind-key 5 select-window -t :5
bind-key 6 select-window -t :6
bind-key 7 select-window -t :7
bind-key 8 select-window -t :8
bind-key 9 select-window -t :9
bind-key : command-prompt
bind-key ; last-pane
bind-key = choose-buffer
bind-key ? list-keys
bind-key D choose-client
bind-key L switch-client -l
bind-key [ copy-mode
bind-key ] paste-buffer
bind-key c new-window
bind-key d detach-client
bind-key f command-prompt "find-window '%%'"
bind-key i display-message
bind-key l last-window
bind-key n next-window
bind-key o select-pane -t :.+
bind-key p previous-window
bind-key q display-panes
bind-key r refresh-client
bind-key s choose-session
bind-key t clock-mode
bind-key w choose-window
bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key { swap-pane -U
bind-key } swap-pane -D
bind-key ~ show-messages
bind-key PPage copy-mode -u
bind-key -r Up select-pane -U
bind-key -r Down select-pane -D
bind-key -r Left select-pane -L
bind-key -r Right select-pane -R
bind-key -r M-1 select-layout even-horizontal
bind-key -r M-2 select-layout even-vertical
bind-key -r M-3 select-layout main-horizontal
bind-key -r M-4 select-layout main-vertical
bind-key -r M-5 select-layout tiled
bind-key -r M-n next-window -a
bind-key -r M-o rotate-window -D
bind-key -r M-p previous-window -a
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R

Es sah irgendwie so aus, als hätte dies mit tmux-Schlüsseltabellen funktionieren können (soweit ich das beurteilen kann), aber Sie können keine neuen Schlüsseltabellen hinzufügen.

Niels Bom
quelle
1
Es ist wahrscheinlich, dass Sie schnell das Äquivalent zu Ihrem generieren können, .tmux.reset.confindem Sie tmux list-keyseine "saubere" Sitzung ausführen.
jw013
2
tmux -f /dev/null -L temp start-server \; list-keyswird effektiv die Standardeinstellungen generieren (obwohl Sie einen Backslash vor dem Semikolon in seiner Bindung hinzufügen müssen).
Chris Johnsen
@ChrisJohnsen Könnten Sie bitte in einer separaten Antwort auf den Start-Server eingehen?
Niels Bom
7

Derzeit gibt es keine direkte Möglichkeit, die Bindung eines Schlüssels auf die Standardeinstellung zurückzusetzen. Die Initialisierung der Standardbindungen (in key_bindings_init()) erfolgt einmalig beim ersten Start des tmux- Servers (in server_start()), und es gibt keinen Mechanismus zum Zurücksetzen eines einzelnen Schlüssels.

Für Ihr gewünschtes Szenario , in dem Sie den Vorgang wollen Sie die Konfigurationsdatei der Beschaffung einen Standard wiederherzustellen Bindung , die zuvor von einem benutzerdefinierten außer Kraft gesetzt wurde Bindung , die seitdem von der Konfigurationsdatei gelöscht wird, entwickeln die Methode , die Sie ist sinnvoll (wenn auch leider ausführlich): unbind-key -a, Stellen Sie dann alle "Standard" -Bindungen wieder her und richten Sie dann Ihre benutzerdefinierten Bindungen ein (von denen einige möglicherweise eine "Standard" -Bindung überschreiben).

Die aktuellen Bindungen eines Servers können mit dem list-keysBefehl * extrahiert werden . Dies kann beim Generieren / Verwalten der vorgeschlagenen .tmux.reset.confDatei hilfreich sein. Sie müssen jedoch die Standardbindungen und nicht die aktuellen Bindungen extrahieren .

* Es gibt einige Situationen , in denen der Ausgang list-keysderzeit nicht direkt einsetzbar: für Semikolon die Bindung seiner Semikolon muss mit einem Backslash geschützt , damit er nicht als interpretiert tmux Befehlsseparator und alle Bindungen , die Argumente hatte , die doppelte Anführungszeichen innerhalb des Hauses Single Anführungszeichen (keine der Standardbindungen ist wie folgt) werden als doppelte Anführungszeichen in doppelten qoutes ausgegeben.

Um die Standardbindungen zu erhalten, benötigen Sie einen temporären Server mit einer minimalen Konfiguration (dh keine benutzerdefinierten Bindungen), damit Sie die list-keysAusgabe erfassen können . Es gibt keine Begrenzung für die Anzahl der tmux- Server, die Sie ausführen können, aber jeder muss einen anderen Socket-Pfadnamen verwenden. Die Optionen -Lund -S tmux können verwendet werden, um einen Socket-Namen (in $TMPDIR/tmux-$UIDoder vollständigen Socket-Pfadnamen) anzugeben. Um also mit einem neuen Server auf einem Socket-Namen zu kommunizieren (oder diesen zu starten) temp, verwenden Sie Folgendes:

tmux -L temp …

Um sicherzustellen, dass Ihre nicht verwendet wird .tmux.conf, -fteilen Sie ihr mit , dass sie gelesen werden soll /dev/null(eine spezielle Datei, die immer leer ist):

tmux -f /dev/null -L temp …

Hinweis : Dies verhindert nicht die Verarbeitung von /etc/tmux.conf, wenn eine solche Datei vorhanden ist; Der Pfad zu dieser „Systemkonfigurationsdatei“ ist fest codiert, und es gibt keine Möglichkeit, ihn zu umgehen (außer beim Patchen des Codes).

Normalerweise benötigen Sie einen new-sessionBefehl, um den Server tatsächlich zu starten, aber wir möchten keine Sitzungen, sondern nur einen initialisierten Server abfragen. Der start-serverBefehl bewirkt genau das: Startet einen Server, ohne Sitzungen zu erstellen.

tmux -f /dev/null -L temp start-server …

Jetzt müssen wir nur noch unseren "query" -Befehl anhängen ( list-keysin diesem Fall):

tmux -f /dev/null -L temp start-server \; list-keys

Hinweis : Das Semikolon muss maskiert oder in Anführungszeichen gesetzt werden, um zu verhindern, dass die Shell es als Shell-Befehlstrennzeichen behandelt, da wir möchten, dass es ein tmux- Befehlstrennzeichen ist.

Da keine Sitzungen zu warten sind, wird der Server automatisch beendet, nachdem der list-keysBefehl ausgeführt wurde.

Mit einem Befehl wie diesem können Sie also einen Großteil .tmux.reset.confIhrer .tmux.confDateien generieren, ohne sich Gedanken über das vorübergehende Entfernen Ihrer Datei machen zu müssen (damit Sie nur die Standardbindungen sehen können) und ohne vorhandene Server herunterfahren zu müssen.


Wenn der run-shellBefehl synchron wäre, könnten Sie einen solchen Aufruf in Ihre Konfigurationsdatei (Aufnahme in eine temporäre Datei, die Sie dann verarbeiten würden source-file) einbetten, anstatt eine statische Datei (Ihre .tmux.reset.conf) zu haben. Auf diese Weise können Sie immer die Standardbindungen aus Ihrer aktuellen Version von tmux verwenden (die Standardbindungen ändern sich gelegentlich). Leider ist die Ausführung des run-shellBefehls derzeit in Bezug auf nachfolgende Befehle asynchron (Befehle, die nach einem run-shellBefehl eingehen, werden normalerweise ausgeführt, bevor der von hervorgerufene Prozess run-shellbeendet werden konnte).

Chris Johnsen
quelle
6

Hier ist eine Zusammenfassung aller anderen Antworten in einem Bash-Skript, das automatisch .tmux.reset.confaus den Standardschlüsselbindungen generiert wird :

#!/bin/bash
tmux -f /dev/null -L temp start-server \; list-keys | \
  sed -r \
  -e "s/bind-key(\s+)([\"#~\$])(\s+)/bind-key\1\'\2\'\3/g" \
  -e "s/bind-key(\s+)([\'])(\s+)/bind-key\1\"\2\"\3/g" \
  -e "s/bind-key(\s+)([;])(\s+)/bind-key\1\\\\\2\3/g" \
  -e "s/command-prompt -I #([SW])/command-prompt -I \"#\1\"/g" \
  > ~/.tmux.reset.conf

Die eingebettete sedBefehlszeile kümmert sich darum, verschiedene Teile der Ausgabe von zu maskieren list-keys. Dies muss möglicherweise an den Besonderheiten Ihres Systems angepasst werden.

.tmux.confEntbinden Sie in Ihrer Datei einfach alle Schlüssel und geben Sie einen Quellcode für diese Datei ein, bevor Sie Ihre eigenen Schlüsselbindungen definieren:

unbind-key -a
source-file ~/.tmux.reset.conf
Richard Cook
quelle
4

Bitte beachten Sie auch die anderen Antworten hier, da sie die Situation gut erklären. Ich habe hier meine mit tmux 1.8 kompatible tmux.reset.conf, die ich nach dem Kopieren der tmux -f /dev/null -L temp start-server \; list-keysAusgabe mehrfach modifizieren musste . Insbesondere mussten einige Dinge angeführt werden.

# First remove *all* keybindings
unbind-key -a
# Now reinsert all the regular tmux keys
bind-key C-b send-prefix
bind-key C-o rotate-window
bind-key C-z suspend-client
bind-key Space next-layout
bind-key ! break-pane
bind-key '"' split-window
bind-key '#' list-buffers
bind-key '$' command-prompt -I "#S" "rename-session '%%'"
bind-key % split-window -h
bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key "'" command-prompt -p index "select-window -t ':%%'"
bind-key ( switch-client -p
bind-key ) switch-client -n
bind-key , command-prompt -I "#W" "rename-window '%%'"
bind-key - delete-buffer
bind-key . command-prompt "move-window -t '%%'"
bind-key 0 select-window -t :0
bind-key 1 select-window -t :1
bind-key 2 select-window -t :2
bind-key 3 select-window -t :3
bind-key 4 select-window -t :4
bind-key 5 select-window -t :5
bind-key 6 select-window -t :6
bind-key 7 select-window -t :7
bind-key 8 select-window -t :8
bind-key 9 select-window -t :9
bind-key : command-prompt
bind-key \; last-pane
bind-key = choose-buffer
bind-key ? list-keys
bind-key D choose-client
bind-key L switch-client -l
bind-key [ copy-mode
bind-key ] paste-buffer
bind-key c new-window
bind-key d detach-client
bind-key f command-prompt "find-window '%%'"
bind-key i display-message
bind-key l last-window
bind-key n next-window
bind-key o select-pane -t :.+
bind-key p previous-window
bind-key q display-panes
bind-key r refresh-client
bind-key s choose-tree
bind-key t clock-mode
bind-key w choose-window
bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key z resize-pane -Z
bind-key { swap-pane -U
bind-key } swap-pane -D
bind-key '~' show-messages
bind-key PPage copy-mode -u
bind-key -r Up select-pane -U
bind-key -r Down select-pane -D
bind-key -r Left select-pane -L
bind-key -r Right select-pane -R
bind-key M-1 select-layout even-horizontal
bind-key M-2 select-layout even-vertical
bind-key M-3 select-layout main-horizontal
bind-key M-4 select-layout main-vertical
bind-key M-5 select-layout tiled
bind-key M-n next-window -a
bind-key M-o rotate-window -D
bind-key M-p previous-window -a
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R
Steven Lu
quelle
4

Ich fragte Upstream, ob sie nicht bereit seien, das Problem zu beheben (es sei denn, jemand reicht eine PR ein).

Hier ist mein manuelles Escapezeichen tmux list-keyserhalten über eine neue Serverinstanz mit

tmux -f /dev/null -L temp start-server \; list-keys

(dank vorheriger Antworten)

## See https://github.com/tmux/tmux/issues/729: How to reset key bindings to default? #729

bind-key    -T prefix C-b              send-prefix
bind-key    -T prefix C-o              rotate-window
bind-key    -T prefix C-z              suspend-client
bind-key    -T prefix Space            next-layout
bind-key    -T prefix !                break-pane
bind-key    -T prefix '"'                split-window
bind-key    -T prefix '#'                list-buffers
bind-key    -T prefix '$'                command-prompt -I '#'S "rename-session '%%'"
bind-key    -T prefix %                split-window -h
bind-key    -T prefix &                confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key    -T prefix "'"                command-prompt -p index "select-window -t ':%%'"
bind-key    -T prefix (                switch-client -p
bind-key    -T prefix )                switch-client -n
bind-key    -T prefix ,                command-prompt -I '#W' "rename-window '%%'"
bind-key    -T prefix -                delete-buffer
bind-key    -T prefix .                command-prompt "move-window -t '%%'"
bind-key    -T prefix 0                select-window -t :=0
bind-key    -T prefix 1                select-window -t :=1
bind-key    -T prefix 2                select-window -t :=2
bind-key    -T prefix 3                select-window -t :=3
bind-key    -T prefix 4                select-window -t :=4
bind-key    -T prefix 5                select-window -t :=5
bind-key    -T prefix 6                select-window -t :=6
bind-key    -T prefix 7                select-window -t :=7
bind-key    -T prefix 8                select-window -t :=8
bind-key    -T prefix 9                select-window -t :=9
bind-key    -T prefix ':'                command-prompt
bind-key    -T prefix \;                last-pane
bind-key    -T prefix =                choose-buffer
bind-key    -T prefix ?                list-keys
bind-key    -T prefix D                choose-client
bind-key    -T prefix L                switch-client -l
bind-key    -T prefix M                select-pane -M
bind-key    -T prefix [                copy-mode
bind-key    -T prefix ]                paste-buffer
bind-key    -T prefix c                new-window
bind-key    -T prefix d                detach-client
bind-key    -T prefix f                command-prompt "find-window '%%'"
bind-key    -T prefix i                display-message
bind-key    -T prefix l                last-window
bind-key    -T prefix m                select-pane -m
bind-key    -T prefix n                next-window
bind-key    -T prefix o                select-pane -t :.+
bind-key    -T prefix p                previous-window
bind-key    -T prefix q                display-panes
bind-key    -T prefix r                refresh-client
bind-key    -T prefix s                choose-tree
bind-key    -T prefix t                clock-mode
bind-key    -T prefix w                choose-window
bind-key    -T prefix x                confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key    -T prefix z                resize-pane -Z
bind-key    -T prefix {                swap-pane -U
bind-key    -T prefix }                swap-pane -D
bind-key    -T prefix '~'                show-messages
bind-key    -T prefix PPage            copy-mode -u
bind-key -r -T prefix Up               select-pane -U
bind-key -r -T prefix Down             select-pane -D
bind-key -r -T prefix Left             select-pane -L
bind-key -r -T prefix Right            select-pane -R
bind-key    -T prefix M-1              select-layout even-horizontal
bind-key    -T prefix M-2              select-layout even-vertical
bind-key    -T prefix M-3              select-layout main-horizontal
bind-key    -T prefix M-4              select-layout main-vertical
bind-key    -T prefix M-5              select-layout tiled
bind-key    -T prefix M-n              next-window -a
bind-key    -T prefix M-o              rotate-window -D
bind-key    -T prefix M-p              previous-window -a
bind-key -r -T prefix M-Up             resize-pane -U 5
bind-key -r -T prefix M-Down           resize-pane -D 5
bind-key -r -T prefix M-Left           resize-pane -L 5
bind-key -r -T prefix M-Right          resize-pane -R 5
bind-key -r -T prefix C-Up             resize-pane -U
bind-key -r -T prefix C-Down           resize-pane -D
bind-key -r -T prefix C-Left           resize-pane -L
bind-key -r -T prefix C-Right          resize-pane -R
bind-key    -T root   MouseDown1Pane   select-pane -t = \; send-keys -M
bind-key    -T root   MouseDown1Status select-window -t =
bind-key    -T root   MouseDown3Pane   if-shell -F -t = '#{mouse_any_flag}' "select-pane -t=; send-keys -M" "select-pane -mt="
# Someone also was wondering how to fix here: http://tmux-users.narkive.com/dTFVvLMh/is-it-possible-to-have-a-binding-that-brings-back-mouse-behavior
bind-key    -T root   MouseDrag1Pane   if-shell -F -t = '#{mouse_any_flag}' "if -Ft= '#{pane_in_mode}' 'copy-mode -M' 'send-keys -M' " "copy-mode -M"

bind-key    -T root   MouseDrag1Border resize-pane -M
bind-key    -T root   WheelUpPane      if-shell -F -t = '#{mouse_any_flag}' "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -et=' "
bind-key    -T root   WheelUpStatus    previous-window
bind-key    -T root   WheelDownStatus  next-window

Das obige ist auf Github, damit Sie Folgendes tun können:

curl -L https://raw.githubusercontent.com/timotheecour/dinocode/master/tmux_list_keys_escaped.txt > ~/.tmux.reset.conf
unbind-key -a
source-file ~/.tmux.reset.conf

HINWEIS: Irgendwie führte die Antwort von Richard Cook immer noch zu Problemen.

timotheecour
quelle
Willkommen bei unix.SE! Wir sind oft vorsichtig mit einfachen Links, also habe ich es direkt hier eingefügt (aber den Link als Referenz behalten). Das ist der bevorzugte Weg hierher. Links sterben (ich weiß, es ist Github! Aber es kann trotzdem irgendwann sterben). Trotzdem ist es eine gute Antwort (+1). Vielleicht könnte es besser sein, wenn Sie es schaffen, das Problem mit Richards sed-Code zu beheben. Das ist ein Jahr alt und tmux hat die schlechte Angewohnheit, nicht 100% abwärtskompatibel zu sein.
voraussichtlich
2

Hier ist eine optimierte Version von Richard Cooks Antwort , um entstehende Probleme unter tmux 2.1 zu beheben

#!/bin/bash
tmux -f /dev/null -L temp start-server \; list-keys | \
    sed -r \
    -e "s/(bind-key.*\s+)([\"#~\$])(\s+)/\1\'\2\'\3/g" \
    -e "s/(bind-key.*\s+)([\'])(\s+)/\1\"\2\"\3/g" \
    -e "s/(bind-key.*\s+)([;])(\s+)/\1\\\\\2\3/g" \
    -e "s/(command-prompt -I )#([SW])/\1\"#\2\"/g" \
    -e "s/(if-shell -F -t = )#([^ ]+)/\1\"#\2\"/g" \
    > ~/.tmux.reset.conf                              

Fügen Sie am Anfang von folgende Zeilen hinzu .tmux.conf

unbind-key -a
source-file ~/.tmux.reset.conf
MilesF
quelle