我想让我的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 r
the 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将能够用会话的当前值替换该变量。