`set -g` is used to set global options in the tmux configuration file. These options apply to all sessions and windows. `setw -g` is used to set window-specific options in the tmux configuration file. These options only apply to the current window. `set` is used to set session-specific options in the tmux configuration file. These options only apply to the current session. 在tmux配置文件中,`set -g`用于设置全局选项。这些选项适用于所有会话和窗口。 `setw -g`用于在tmux配置文件中设置特定于窗口的选项。这些选项仅适用于当前窗口。 `set`用于在tmux配置文件中设置特定于会话的选项。这些选项仅适用于当前会话。

我正在阅读 tmux 手册,据我所知,如果没有给出任何标志,set 默认是一个“会话选项”,我理解这意味着它只适用于该会话。 如果提供了 -g 标志,则为“全局会话”选项。我理解这意味着它适用于所有会话。 现在,如果我执行 setw -g,那就是一个全局窗口选项,我理解这意味着它适用于会话中的所有窗口,与没有标志的 set 是一样的。 然后有一个 -s 标志,这意味着它适用于整个服务器。听起来好像它适用于所有会话,听起来跟 set -g 标志一样。但我觉得不对。这样不对,因为为什么会有两个做同样事情的标志呢?

4可能是全局、服务器、会话和窗口选项之间的区别的重复问题。 - StevieD
1个回答

StevieD提供的链接 "Possible duplicate of Difference between global, server, session and window options" 是一个很好的概述。 基本上,这是复杂的。 "set" 可以设置服务器、窗口和会话选项,并且使用 "set -s" 或 "set" 来设置服务器选项时效果相同。然而,最好在设置服务器选项时包含 "-s",因为这样可以防止在实际上不是服务器选项时设置该选项。服务器选项的示例包括 buffer-limit 和 exit-unattached。如果你使用 set -s 来编辑一个选项,然后打开一个新的终端,新的终端将反映出已更改的选项。 “setw”命令的可用标志较少。因为“setw”是特定于窗口的,所以“setw -s”的意义不大。(顺便说一下,“set -w”与“setw”完全相同。)类似于“set”命令,-a选项将值附加到现有设置上,-F选项在选项值中展开格式,-g选项设置/取消全局选项,-o选项防止设置已经设置的选项,-q选项抑制有关未知或模棱两可选项的错误,-u选项取消一个选项,使会话从全局选项继承,或者如果同时使用了-g选项,则将该全局选项实际更改回默认设置。 因此,如果我只想将我的窗口默认shell更改为/bin/bzexe,我可以运行tmux setw default-shell /bin/bzexe “set”命令设置的选项在运行“set -g”时保持不变。“setw”具有与“set”不同的选项,“setw -g”的行为类似于“set -g”,在设置全局选项时,通过“show-window-option”检查其值时不会更改。 “set”选项可以通过“show-options”显示。 “setw”选项可以通过“show-window-option”显示。 所有上述命令可以通过添加-g来改为查看全局选项。

  • 相关问题