如何在 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?
我尝试过但无效的方法:
- 运行
export MY_VARIABLE=my_value
在 bash 之前按 C-b r
.
- 运行
tmux setenv MY_VARIABLE my_value
在 bash 之前按 C-b r
.
(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 将能够用当前值替换该变量会话。
我希望我的绑定键命令使用一个变量。
这是我的 .tmux.conf 文件:
# .tmux.conf
bind-key r rename-session $MY_VARIABLE
如何逐个会话设置 MY_VARIABLE?
我尝试过但无效的方法:
- 运行
export MY_VARIABLE=my_value
在 bash 之前按C-b r
. - 运行
tmux setenv MY_VARIABLE my_value
在 bash 之前按C-b r
.
(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 将能够用当前值替换该变量会话。