tmux如何在choose-tree模式下将hjkl映射为j、k、l、;?
tmux choose-tree模式hjkl重映射方案
报错原因
table choose-tree doesn't exist报错是tmux版本差异导致的键表命名规则不同:
- tmux 2.x及更早版本:无独立
choose-tree键表,所有选择类模式的映射统一绑定在choose-mode键表下 - tmux 3.0及以上版本:
choose-tree拆分出独立键表,直接使用choose-tree作为键表名即可
之前替换为choose-mode仍不生效,大概率是绑定的动作指令与版本不匹配,或是修改配置后没有重载配置导致的。
对应版本配置
第一步:查看tmux版本
执行命令:tmux -V
3.0及以上版本配置
# 解绑choose-tree默认hjkl unbind -T choose-tree h unbind -T choose-tree j unbind -T choose-tree k unbind -T choose-tree l # 自定义映射(此处为符合vim直觉的逻辑,可按需调整动作) bind -T choose-tree h send-keys -X collapse-selected-item # h折叠 bind -T choose-tree j send-keys -X select-next-item # j向下选 bind -T choose-tree k send-keys -X select-previous-item # k向上选 bind -T choose-tree l send-keys -X expand-selected-item # l展开
2.x版本配置
# 解绑choose-mode默认hjkl unbind -T choose-mode h unbind -T choose-mode j unbind -T choose-mode k unbind -T choose-mode l # 自定义映射 bind -T choose-mode h send-keys -X collapse # h折叠 bind -T choose-mode j send-keys -X select-next # j向下选 bind -T choose-mode k send-keys -X select-prev # k向上选 bind -T choose-mode l send-keys -X expand # l展开
生效方式
修改配置后执行tmux source ~/.tmux.conf重载配置即可生效,无需重启tmux。
跨版本兼容配置(可选)
如果需要在不同tmux版本的设备上共用同一份配置,可以添加版本判断:
# 判断版本 >=3.0使用choose-tree表,否则使用choose-mode表 #if "echo #{version} | grep -qE '^([3-9]|[1-9][0-9])\.'" \ # "bind -T choose-tree h send-keys -X collapse-selected-item; bind -T choose-tree j send-keys -X select-next-item; bind -T choose-tree k send-keys -X select-previous-item; bind -T choose-tree l send-keys -X expand-selected-item" \ # "bind -T choose-mode h send-keys -X collapse; bind -T choose-mode j send-keys -X select-next; bind -T choose-mode k send-keys -X select-prev; bind -T choose-mode l send-keys -X expand"
内容的提问来源于stack exchange,提问作者Paweł Chabros
相关产品推荐
相关产品推荐

