tmux:表示文本是否被选中的变量?

问题描述 投票:0回答:1

我在Tmux的复制模式下使用vi键绑定,我想让Esc清除当前选择(如果有),或者如果没有选择则退出复制模式。

bind -T copy-mode-vi Escape if-shell -F '#{selection_active_flag}' \
                                        'send-keys -X clear-selection' \
                                        'send-keys -X cancel'

我希望Tmux可能会暴露一个表明选择状态的变量(我编写了selection_active_flag来表达我的意图,它实际上并不存在),类似于window_zoomed_flag(确实存在)。

有没有办法实现这个目标?

key-bindings tmux
1个回答
1
投票

Tmux 2.6引入了selection_present。正如changelog所述,

  • 在复制模式下添加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'
© www.soinside.com 2019 - 2024. All rights reserved.