mac下codex completion修正(command not found: compdef))
问题
# codex 命令自动补全
codex completion zsh > ~/.zshrc.d/codex-completion.sh
1. 问题本质(Root Cause)
compdef 是 zsh completion framework 的函数,但它依赖 compinit 初始化后才存在。
你这个报错:
command not found: compdef
说明:
- 当前 shell 执行到了 completion 脚本(codex-completion.sh)
- 但 zsh completion system 还没初始化
- 所以
compdef这个函数不存在
👉 关键机制:
compinit → 注册 completion system → 提供 compdef
如果没执行 compinit,就会报错
2. 快速修复方案
2.1在 .zshrc 顶部初始化 completion
1 | # add |
👉 必须放在 所有 completion 脚本之前
例如:
1 | # 必须最前 |
这是最标准修复方式
2.2推荐工程化配置
1 | # ~/.zshrc |
👉 这样可以避免:
- 插件提前执行
- completion 未加载
3. 最优实践
1 | # ~/.zshrc(标准化模板) |