我有几台计算机,tmux
既可以在本地使用,也可以远程使用(通过ssh
嵌套tmux
会话)。目前,我在所有机器上都使用Ctrl+作为前缀,但当我想执行多个操作时,输入+B有点繁琐。CtrlB B whatever
有没有办法配置tmux
,以便当我从终端仿真器访问它时,我使用前缀Ctrl+ B,而当我从 ssh 访问它时,我使用Ctrl+ A(或其他内容)作为前缀?
答案1
对我有用的是不更改前缀并将以下内容添加到我的.tmux.conf
:
bind-key -n C-a send-prefix
tmux
当我按下Ctrl+时,它只会将前缀发送到嵌套会话A。我觉得自己有点愚蠢,为什么没有早点想到这个……
答案2
您可以使用run-shell
tmux 的功能。
创建以下 shell 脚本,名为set-prefix.sh
#!/bin/bash
if [[ -n $SSH_TTY ]];then
tmux unbind-key C-b;
tmux set -g prefix C-a;
tmux bind C-a send-prefix;
else
tmux display-message "Not a ssh session"
fi
现在添加以下行.tmux.conf
:
run 'bash ~/set_key_bind.sh'