为什么 tmux 设置会重置,以及如何自动重新加载它们?

Why are tmux settings reset, and how to automatically reload them?

每次我重新打开 tmux 时,.tmux.conf 中的一些设置都会被重置,我必须 运行 tmux source-file ~/.tmux.conf 才能重新应用它们。奇怪的是,有些设置没有重置。

例如,这些在 tmux 会话中存活:

# Use | and - for splitting windows
bind-key | split-window -h
bind-key - split-window -v

这些每次会话都会重置:

# Change default 'prefix' key to '`'
set prefix `
unbind-key C-b
bind-key ` send-prefix

为什么行为不同?

有没有办法在 tmux 会话启动时自动重新加载 .tmux.conf?

set -g prefix `

停止这些命令的重置。

如果不重置就不需要自动重新加载,这里重置的是set-prefix(或"set-option")块,因为set-option对[=24=敏感].如果没有 -g,set-option 默认为会话模式。但是由于最初没有 tmux 会话将自身应用到 ,它直到 .tmux.conf 在新的 tmux 会话中重新获取资源后才起作用。从 man 页面,

If -g is given, the global session or window option is set.

将其设置为全局会话会将命令预应用到所有新的 tmux 会话。