用于 ssh 连接的单独 .tmux.conf

用于 ssh 连接的单独 .tmux.conf

我有几台计算机,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-shelltmux 的功能。

创建以下 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'

相关内容