与 Vim 的模式类似,我希望 Tmux 保持在“前缀模式”(你实际上称之为什么?)直到我点击 Escape,这样我就可以做类似的事情
Prefix h j + +
代替
Prefix h Prefix j Prefix + Prefix +
不必担心计时器或过度和弦。
我将此作为问题发布并收到以下答案:
\n\n\n您可以重新绑定所有键以添加
\nswitch-client -Tprefix到每个命令序列的末尾,但没有自动方法可以执行此操作。
这里的问题是,如果命令抛出错误,它将不起作用,但您可以通过使用来解决它
\n\n\n是的错误将取消命令序列,您可以使用 run-shell 来解决这个问题,例如
\n\n
run "tmux mycmd; tmux switch-client -Tprefix"但这可能会隐藏错误的显示。
\n
我当前的配置如下所示:
\nbind c new-window \\; switch-client -T prefix\nbind . command-prompt \\; switch-client -T prefix\nbind , copy-mode \\; switch-client -T prefix\n\n# Vim style splits\nbind s split-window -v \\; switch-client -T prefix\nbind v split-window -h \\; switch-client -T prefix\n\n# Double tab to cycle panes\nbind C-a select-pane -t :.+ \\; switch-client -T prefix\nRun Code Online (Sandbox Code Playgroud)\n据我所知,tmux 对不同的绑定使用不同的上下文。要指定在哪个上下文中使用绑定,请使用bind <key> -T <context>,其中 prefix 是默认值。您可以使用 切换上下文switch-client -T <context>,因此我们要做的就是在每个命令之后重新应用前缀。
这种方法的缺点是:
\n奖金!您可以添加一个时髦的指示器,当您长时间处于前缀模式时,这非常有帮助,方法是使用类似的东西
\nset -g status-right "#{?client_prefix,#[reverse]\xe2\x97\x8f #[noreverse],#[reverse]\xe2\x97\x8b #[noreverse]}"