tmux:指示文本是否被选择的变量?

iva*_*van 2 key-bindings tmux

Esc我在 Tmux 的复制模式中使用 vi 键绑定,如果有的话,我想明确当前的选择,或者如果没有选择任何内容,则退出复制模式。

bind -T copy-mode-vi Escape if-shell -F '#{selection_active_flag}' \
                                        'send-keys -X clear-selection' \
                                        'send-keys -X cancel'
Run Code Online (Sandbox Code Playgroud)

我希望 Tmux 可以公开一个指示选择状态的变量(我是selection_active_flag为了表达我的意图而编造的,它实际上并不存在),类似于window_zoomed_flag(确实存在)。

有办法实现这一点吗?

iva*_*van 6

Tmux 2.6 推出selection_present正如变更日志中所述,

  • 在复制模式下添加 Selection_present 格式(允许在有选择的情况下执行不同操作的键绑定)。

这正是我正在寻找的,虽然我正在运行 Tmux 2.6,但似乎我有一个过时的手册页,因为它没有提到selection_present.

最终的工作解决方案是:

bind -T copy-mode-vi Escape if-shell -F '#{selection_present}' \
                                        'send-keys -X clear-selection' \
                                        'send-keys -X cancel'
Run Code Online (Sandbox Code Playgroud)