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



我想让我的bind-key命令使用一个变量。

我的.tmux.conf文件:

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

如何在会话的基础上设置MY_VARIABLE ?

我尝试过的事情都没有成功:

  • 在按下C-b r前先在bash中运行export MY_VARIABLE=my_value
  • 在bash中先运行tmux setenv MY_VARIABLE my_value,再按C-b r

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

下面(基于这个答案)是可行的:

添加一行到.tmux.conf,像这样:

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

RunningC-b rthe successfully重命名会话。但这并不理想,因为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将能够用会话的当前值替换该变量。

最新更新