我的目标是在本地机器上使用 Ck 作为 tmux 前缀,但是当我处于一个 tmux 会话中时,该会话本身包含一个进入托管 tmux 会话的机器的 ssh 会话,我想按 C-kj(或 Ck Cj,或其他)将前缀传递到远程 tmux 会话。
根据此处链接的 .tmux.conf: https://stackoverflow.com/a/9630367
解释如下:https://stackoverflow.com/a/8530024
我已设置以下内容:
# prefix and send-prefix settings.
unbind C-b
set -g prefix C-k
bind-key -n C-j send-prefix
看起来很简单,但不知何故上面的方法对我来说不起作用。Ck 在单个 tmux 会话上运行良好,但 Ck Cj 无法通过前缀到达远程会话。我显然忽略了一些简单的东西。
本地 tmux 在 Ubuntu 上是 1.6 版本
远程 tmux 通常在 RedHat 上,版本为 1.6。
注意:如果不进行任何这些设置,Cb Cb 会按预期将前缀发送到远程计算机。但我真的更喜欢 Ck 和 Ck Cj。
我的全部配置(针对本地和远程机器):
# prefix and send-prefix settings.
unbind C-b
set -g prefix C-k
bind-key -n C-j send-prefix
# Set scrollback buffer n lines.
set -g history-limit 5000
# Listen for activity on all windows.
set -g bell-action any
set -g status-bg blue
set -g status-fg white
set -g status-left '#[fg=yellow]#H'
set-window-option -g window-status-current-bg magenta
# Set vi mode bindings.
setw -g mode-keys vi
答案1
如果你想使用肌酸激酶发送肌酸激酶到内部会话(即发送前缀到tmux在另一边奔跑远程控制session),那么你可能想-n
在绑定时省略该选项碳。
# prefix and send-prefix settings.
unbind C-b
set -g prefix C-k
bind-key C-j send-prefix
使用上述配置(在两种情况下tmux实例),您可以输入(例如)氯乙烯在嵌套会话中创建一个新窗口。
我-n
在您链接的第二个答案中描述了使用绑定,因为它允许您使用单个键,就好像它只是前缀一样在嵌套会话中。例如,使用-n
(您在问题中描述的配置),您可以输入気在嵌套会话中创建一个新窗口。如果您不介意必须键入前缀,那么非绑定-n
可能更好,因为绑定可能非常具有侵入性(它们使得在正在运行的内容中-n
使用 -bound 键变得困难-n
tmux-控制 ttys)。