tmux ignoriert die Konfigurationsdatei


88

Ich habe gerade tmux unter Ubuntu 10.04 installiert und versucht, den Präfixschlüssel neu zuzuordnen, C-aindem ich die Datei ~/.tmux.confmit den folgenden Zeilen erstellte:

set-option -g prefix C-a
unbind-key C-b

Wenn Sie tmux regelmäßig und mit starten, -f ~/.tmux.confist das Präfix praktisch das gleicheC-b

Es gibt keinerlei Fehler oder Warnungen.

Irgendeine Idee, was mit dem Laden der conf falsch ist?


Es funktioniert bei mir ™. Versuchen Sie, strace -s9999 -f -o tmux.strace tmux -c truedie Ausgabe von auszuführen und zu veröffentlichen grep -C5 'tmux\.conf' tmux.strace.
Gilles

Ich hatte das gleiche Problem, es gab keine bestehenden Sitzungen ('tmux ls' meldete, dass die Verbindung abgelehnt wurde, dh nicht lief), aber es wurde immer noch nicht die conf-Datei gelesen. Ich habe es mit einer CWD irgendwo in / usr gestartet, aber als ich zu ~ / gewechselt und tmux gestartet habe, hat es die conf-Datei verarbeitet. Es ist seltsames Verhalten, aber das ist etwas zu überprüfen.
Ranko Kohime

Antworten:


119

Die Datei ~ / .tmux.conf wird beim ersten Start des tmux-Servers geladen. Wenn also tmux-Sitzungen vorhanden sind, führt das Starten einer neuen Sitzung mit tmuxnicht zum erneuten Laden der Datei .tmux.conf. Versuchen Sie, den tmux-Server neu zu starten: Verwenden Sie den Befehl tmux list-sessions, um festzustellen , ob Sitzungen vorhanden sind. Beende sie (z. B. tmux attachdann alle Fenster und beende). Versuchen Sie es tmuxerneut, sobald alle Sitzungen beendet sind . Diesmal sollte das Nachbinden funktionieren.


27
killall tmuxoder tmux kill-servererledigen Sie den Job auch
Matt

5
Ich habe killall tmuxund verwendet tmux kill-serverund trotzdem ist meine conf nicht geladen. Ich kann bestätigen, dass es gültig ist, da das Verwenden :source-file ~/.tmux.confin tmux tatsächlich die Konfigurationsänderungen vornimmt! Kann nicht herausfinden, was dieses Verhalten verursacht.
Ambidex

Ich frage mich, warum das Neuladen der Konfiguration in dieser Antwort nicht erwähnt wurde. Manchmal funktioniert es und manchmal nicht. Irgendwelche Ideen dazu?
DarthPaghius

53

Um Ihre ~ / .tmux.conf neu zu laden, ohne Ihre Sitzung zu beenden, können Sie einfach Folgendes tun:

C-b :source-file /absolute/path/to/your/.tmux.conf

4
Sie können .tmux.conf Folgendes hinzufügen, um mit Strg-A r neu zu laden:bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
RedPixel

+1 für den Hinweis auf die Notwendigkeit des absoluten Weges
Akash Agarwal

20

Führen Sie in Ihrer tmux-Sitzung Folgendes aus:

tmux source-file /absolute/path/to/your/.tmux.conf

Hinweis: Dies wirkt sich nicht (offensichtlich) auf das aktuelle tmux-Fenster aus, sondern auf alle neuen tmux-Fenster.
Klaws

3

Es gibt auch ein Standard - Tastaturkürzel verbindlich Ihre nachladen ~/.tmux.conf, zumindest in meiner Installation: C-b r. Wenn Sie auf C-b ?drücken, wird eine Liste aller gebundenen Tastaturkürzel angezeigt, sodass Sie sehen können, ob Sie bereits eine definiert haben.


Das ist spezifisch für Ihre Installation / Konfiguration. Standardmäßig <prefix> rist gebunden an refresh-client(was Sie beschreiben, wäre so etwas wie source ~/.tmux.conf).
Chris Johnsen

1

Ich hatte dieses Problem, weil ich tmux-next verwendet habe .

Anfangs habe ich es einfach gelöst, indem ich die Konfigurationsdatei explizit übergeben habe, tmux -f ~/.tmux.confwie die Frage hier zeigt. (Ich hatte bereits tmux-next to tmux als Alias ​​angegeben.)

Dann stellte ich fest, dass tmux-next die Datei tmux-next.conf verwendet. Verknüpfen Sie diese also einfach mit einem Symlink, wenn Sie diese verwenden und nur die nächste tmux-Version ausführen müssen.

ln -s ~/.tmux.conf ~/.tmux-next.conf


1

Ich habe mein Terminal verlassen und wieder geöffnet. Nur so kann ich es wieder zum Laufen bringen. Nicht sicher warum.

Verwenden von Terminal unter Mac OSX

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.