tmux не обращая внимания на файл конфигурации

88

Я только что установил tmux в Ubuntu 10.04 и попытался переназначить префиксный ключ C-a, создав файл ~/.tmux.confс такими строками:

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

При запуске tmux, как регулярно, так и с помощью -f ~/.tmux.conf, префикс по умолчанию одинаковыйC-b

Там нет никаких ошибок или предупреждений вообще.

Любая идея, что не так с загрузкой конф?

ГДж.
источник
Это работает для меня ™. Попробуйте запустить strace -s9999 -f -o tmux.strace tmux -c trueи опубликовать вывод grep -C5 'tmux\.conf' tmux.strace.
Жиль
У меня была такая же проблема, никаких существующих сессий, ('tmux ls' сообщил, что соединение отказано, т.е. не запущено), но оно все еще не читало файл conf. Я запускал его с CWD где-то в / usr, но когда я переключился на ~ / и запустил tmux, он обработал файл conf. Это странное поведение, но это то, что нужно проверить.
Ранко Кохиме

Ответы:

119

Файл ~ / .tmux.conf загружается при первом запуске сервера tmux. Поэтому, если существуют существующие сеансы tmux, запуск нового сеанса с помощью tmuxне приводит к перезагрузке файла .tmux.conf. Попробуйте перезапустить сервер tmux: используйте команду, tmux list-sessionsчтобы увидеть, существуют ли существующие сеансы. Выйдите из них (например, tmux attachзатем убейте все окна и выйдите). После того, как все сеансы прошли, попробуйте еще tmuxраз. На этот раз переплет должен работать.

Майкл
источник
27
killall tmuxили tmux kill-serverполучу работу тоже
Мэтт
5
Я использовал killall tmuxи tmux kill-serverдо сих пор мой конф не загружен. Я могу подтвердить, что это действительно так, поскольку использование :source-file ~/.tmux.confв tmux действительно вносит изменения в конфигурацию! Не могу понять, что является причиной такого поведения.
Ambidex
Интересно, почему перезагрузка конфигурации не была упомянута в этом ответе. Иногда это работает, а иногда нет. Есть идеи по этому поводу?
Дарт Пагиус
53

Чтобы перезагрузить ваш ~ / .tmux.conf, не прерывая сеанс, вы можете просто сделать:

C-b :source-file /absolute/path/to/your/.tmux.conf
peroumal1
источник
4
Вы можете добавить следующее в .tmux.conf, чтобы использовать Ctrl-A r для перезагрузки:bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
RedPixel
+1 за указание на необходимость абсолютного пути
Акаш Агарвал
20

запустить внутри вашей сессии tmux:

tmux source-file /absolute/path/to/your/.tmux.conf
HVNSweeting
источник
Примечание: это не повлияет на текущее окно tmux (очевидно), но на все новые окна tmux.
Клоус
3

Там также клавиатура по умолчанию ярлык привязки перезарядить ~/.tmux.conf, по крайней мере , в моей установке: C-b r. Если вы нажмете C-b ?, появится список всех связанных сочетаний клавиш, так что вы можете увидеть, есть ли у вас уже определены.

Джош Эрл
источник
Это зависит от вашей установки / конфигурации. По умолчанию <prefix> rпривязан к refresh-client(что вы описали бы было что-то вроде source ~/.tmux.conf).
Крис Джонсен
1

У меня была эта проблема, потому что я использовал tmux-next .

Первоначально я решил это, просто передав файл конфигурации в явном виде, tmux -f ~/.tmux.confкак указано здесь. (У меня уже есть псевдоним tmux-рядом с tmux.)

Затем я понял, что tmux-next использует tmux-next.conf, поэтому просто используйте символическую ссылку, если используете это, и вам нужно только запустить следующую версию tmux.

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

mahemoff
источник
1

Я вышел и снова открыл свой терминал, и это единственный способ заставить его работать снова. Не уверен почему.

используя терминал на Mac OSX

Коннор Маккормик
источник