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

如何编写支持指定目录补全和glob通配符的zsh-completion脚本

zsh-completion通配符补全实现方案

修改后的_rumple补全脚本

#compdef rumple

# 定义命令对应的根目录
local rumple_root=~/rumple

# 检测当前输入是否包含通配符
if [[ $PREFIX == *[\*\?\[]* ]]; then
  # 局部启用glob相关选项,不影响全局配置
  setopt localoptions extendedglob nullglob globstar
  # 基于根目录展开通配符匹配结果
  local -a glob_matches
  glob_matches=(${rumple_root}/${PREFIX})
  # 剔除根目录前缀,仅保留命令需要的相对路径
  glob_matches=(${glob_matches#${rumple_root}/})
  # 输出匹配结果到补全列表
  compadd -a glob_matches
  return 0
fi

# 无通配符时走原有普通路径补全逻辑
_path_files -W ${rumple_root}

必要配置

你需要在~/.zshrc中加入以下配置开启递归glob支持:

setopt globstar

配置完成后重启zsh或执行source ~/.zshrc生效。

效果验证

配置完成后,在任意工作目录输入rumple **/p*按下TAB,即可补全出~/rumple目录下所有匹配**/p*规则的相对路径,符合需求。


内容的提问来源于stack exchange,提问作者Lord Bo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:36:04