MacOS下zsh别名l按TAB补全如何优先显示最近修改的文件目录
配置调整步骤
- 新增别名补全映射,让
l命令复用ls的补全规则,在你的.zshrc中添加如下行:
compdef l=ls
- 调整补全菜单触发逻辑,满足「第一次TAB仅列列表、第二次TAB才进入选择模式」的需求,添加如下配置:
zstyle ':completion:*' menu select=2
select=2的含义是:当补全候选数量≥2时,首次按TAB仅输出所有候选列表,不会自动补全也不会进入选择状态;第二次按TAB才会进入菜单选择模式,默认选中排序后的第一个候选。
3. 修正按键绑定,删除你之前添加的bindkey '\t' reverse-menu-complete、bindkey '^\t' reverse-menu-complete等针对TAB键的自定义绑定,仅保留Shift+TAB反向选择的配置即可:
bindkey '^[[Z' reverse-menu-complete
- 你的时间倒序排序配置已经覆盖
ls,配合第一步的compdef映射会自动对l命令生效,无需额外修改,如果你需要对更多命令生效,直接在现有匹配列表中追加命令名即可:
zstyle ':completion:*:complete:(ls|cd|cp|mv|vim|cat|more|tail|head|open):*' file-sort date reverse
完整生效配置片段参考
# ZSH completion autoload -Uz compinit compinit # Colorize completions using default `ls` colors. zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # 补全菜单触发逻辑:第一次TAB列列表,第二次TAB进入选择模式 zstyle ':completion:*' menu select=2 # Zsh reverse auto-completion zmodload zsh/complist bindkey '^[[Z' reverse-menu-complete # To get new binaries into PATH zstyle ':completion:*' rehash true # 按修改时间倒序排序补全项 zstyle ':completion:*:complete:(ls|cd|cp|mv|vim|cat|more|tail|head|open):*' file-sort date reverse # 别名l复用ls的补全规则 compdef l=ls # Variables not very well known # Disable prompt disappearing on multi-lines export COMPLETION_WAITING_DOTS="false" alias l='grc -es --colour=auto ls --color -Gh -C -lrt'
修改完成后执行source ~/.zshrc即可生效。
内容的提问来源于stack exchange,提问作者user1773603
相关产品推荐
相关产品推荐

