tmux - 如果窗格处于复制模式,如何将当前窗格的文本颜色更改为黄色

tmux - 如果窗格处于复制模式,如何将当前窗格的文本颜色更改为黄色

在 Ubuntu 23.10 上的 tmux 3.3a 中,如果当前窗格处于复制模式(按 prefix_key + PageUp),我想将文本颜色更改为黄色,当退出复制模式时,让文本恢复为灰色。

我试过:

set-hook -g pane-mode-changed 'if -F "#{m/r:(copy|view)-mode,#{pane_mode}}" "set window-active-style fg=yellow" "set -u window-active-style fg=grey"'

我已经测试过了。启动 tmux 并输入一些命令(例如 dir),然后按下,prefix_key + PageUp文本颜色就会正确变为黄色。如果我按下,CTRL+C它会变回灰色。正如我想要的那样。

现在创建第二个窗格:prefix_key + "同样执行一些命令,例如 dir,然后按下prefix_key + PageUp,颜色按预期变为黄色。现在移至另一个窗格(不退出当前窗格中的复制模式),prefix_key + ArrowUp第一个窗格获得黄色文本颜色,尽管不在复制模式中。在这种情况下,我希望文本保持灰色,因为当前窗格处于“正常”模式。

答案1

移动到另一个窗格不会触发pane-mode-changed,而是会触发window-pane-changed。最简单的改进是定义两个钩子:

set-hook -g pane-mode-changed   '…'   # you already have this
set-hook -g window-pane-changed '…'   # same action, different trigger

相关内容