tmux
我在 Arch Linux 上并且在我的终端中运行。
~ ❯ tmux -V
tmux 3.2a
在 tmux 会话中运行时,如何确定是否:
- A
tmux.conf
正在使用 - 正在使用的文件的位置
tmux.conf
。
答案1
我认为可能存在一个误解:当你“在 tmux 会话中”时,tmux.conf
不是“被使用”,它已经用过。比较这个关于 Bash 的答案和.bashrc
,类似的情况。链接答案的段落之一可以从“bash”“翻译”为“tmux”。 “翻译”版本将是:
不要将其视为保存shell tmux 服务器当前设置的文件。它的意思是有来源的.bashrc
tmux.conf
一旦进入干净的shell tmux 服务器,就会自动。人们有时会再次手动获取它并且它有效* [...]
* 它适用于第二次执行旧事物可能产生的副作用。
解析配置文件后,tmux 服务器甚至可能会忘记该文件。此时服务器的配置就完成了本身才是最重要的。配置由文件强加,但既不存储在文件中,也不从文件中更新。文件中的更改不会影响已经运行的服务器,因为该文件(即它的旧版本)已经被处理。
然而,Tmux 确实会记住已加载的配置文件。此信息可作为名为的格式变量使用config_files
。例如,在 tmux 内的 shell 中,您可以执行以下操作:
tmux display-message -p 'This is a list of config files: #{config_files}'
对我来说,该命令打印:
This is a list of config files: /etc/tmux.conf,/home/kamil/.tmux.conf
如果您确实想了解该文件存在使用然后检查current_file
格式变量。#{current_file}
格式字符串中的 将会扩展为正在处理的文件的路径名(自动或使用source-file
)。在任何文件之外(例如,如果您tmux display-message -p '#{current_file}'
在 tmux 内的 shell 中运行),它将扩展为空字符串。
根据变更日志,current_file
在 tmux 3.2 中添加。
答案2
不太好,但是运行tmux -v
(从用户具有写入权限的目录开始,然后 )grep loading tmux-server-<pid>.log
。请记住退出并删除日志,因为它们增长得很快。
然而,一般来说,对于正在读取的配置文件位置,您应该只有几种可能性(在 3.2a 上测试):
- 首先,如果
tmux -f configfile
使用,它胜过所有其他。甚至系统配置也不会被处理。 -f
如果命令行上 没有:/etc/tmux.conf
然后处理系统(如果存在)。- 然后处理用户配置
~/.tmux.conf
(如果存在)。 - 然后(特定于 3.2a)处理用户配置
~/.config/tmux/tmux.conf
(如果存在)。
当然,其中任何一个都可以是source-file
另一个,另一个也可以是source-file
另一个,依此类推。但至少应该很容易解开正在发挥作用的配置。