You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:36:06