如何在 tmux 绑定键映射中使用环境变量?

How to use env variable in a tmux bind-key map?

我希望我的绑定键命令使用一个变量。

这是我的 .tmux.conf 文件:

# .tmux.conf
bind-key r rename-session $MY_VARIABLE

如何逐个会话设置 MY_VARIABLE?

我尝试过但无效的方法:

C-b 是我在 tmux 中的前缀)

以下(基于 this answer)有效:

向 .tmux.conf 添加一行,如下所示:

# .tmux.conf
MY_VARIABLE=my_value
bind-key r rename-session $MY_VARIABLE

运行ning C-b r 成功重命名会话。但这并不理想,因为 MY_VARIABLE=my_value 被硬编码到 .tmux.conf 文件中;我想要一种临时更改 MY_VARIABLE 的方法。

通常,绕过这个的方法是再次通过 shell,例如:

bind-key r run-shell 'tmux rename-session "$MY_VARIABLE"'

单引号阻止变量在解析配置文件时扩展。如果你稍后说

tmux setenv MY_VARIABLE my_value

它将设置会话环境。 当您随后键入 prefix-r 时,run-shell 派生的 shell 将继承这些会话变量,并且 shell 将能够用当前值替换该变量会话。