tmux忽略配置文件


87

我刚刚在Ubuntu 10.04上安装了tmux,并尝试C-a通过~/.tmux.conf使用以下行创建文件来将前缀密钥重新映射到:

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

当启动tmux时,定期地和使用-f ~/.tmux.conf,前缀实际上是相同的默认值C-b

没有任何错误或警告。

知道conf的加载有什么问题吗?


它对我有效。尝试运行strace -s9999 -f -o tmux.strace tmux -c true并发布的输出grep -C5 'tmux\.conf' tmux.strace
吉尔斯(Gilles)2010年

我遇到了同样的问题,没有现有的会话,(“ tmux ls”报告连接被拒绝,即未运行),但它仍未读取conf文件。我在/ usr中的某个地方用CWD启动它,但是当我切换到〜/并启动tmux时,它处理了conf文件。这是奇怪的行为,但这是需要检查的东西。
Ranko Kohime

Answers:


118

首次启动tmux服务器时,将加载文件〜/ .tmux.conf。因此,如果存在现有tmux会话,则使用开始新的会话tmux不会导致重新加载.tmux.conf文件。尝试重新启动tmux服务器:使用命令tmux list-sessions查看是否存在现有会话。退出它们(例如,tmux attach杀死所有窗口并退出)。一旦所有会话都结束,请重试tmux。这次重新绑定应该起作用。


27
killall tmuxtmux kill-server也可以完成工作
马特

5
我用过killall tmuxtmux kill-server并且仍然没有加载我的conf。我可以确认它是有效的,因为:source-file ~/.tmux.conf在tmux中使用确实会更改配置!无法弄清楚是什么原因导致了此行为。
Ambidex

我想知道为什么在这个答案中没有提到重新加载配置。它有时有效,有时却无效。有什么想法吗?
DarthPaghius

53

要重新加载〜/ .tmux.conf而不终止会话,只需执行以下操作:

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

4
您可以将以下内容添加到.tmux.conf中,以使用Ctrl-A r重新加载:bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
RedPixel 2015年

+1指出绝对路径的必要性
Akash Agarwal

20

在您的tmux会话中运行:

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

注意:这显然不会影响当前的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-next别名为tmux。)

然后我意识到tmux-next正在使用tmux-next.conf,因此如果使用它,则只需将其符号链接即可,并且只需要运行下一个tmux版本即可。

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


0

我退出并重新打开了终端,这是我可以再次使用它的唯一方法。不知道为什么。

在Mac OSX上使用终端

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.