当使用在双破折号后接受附加参数的命令时,我注意到这一点,例如:
npm test -- spec/blah-spec.js
在原始、干净的 ZSH v5.3 安装中,制表符补全可以正常工作:
npm test -- spec/blah<TAB>
但是,只要我将以下几行添加到我的.zshrc 中:
autoload -U compinit && compinit
zmodload -i zsh/complist
在这种情况下,制表符补全会中断(TAB 不执行任何操作)。
有没有办法既可以自定义完成又不会破坏这个用例?
更新:根据建议:
❯ which $_comps[npm]
_npm_completion () {
local si=$IFS
compadd -- $(COMP_CWORD=$((CURRENT-1)) \
COMP_LINE=$BUFFER \
COMP_POINT=0 \
npm completion -- "${words[@]}" \
2>/dev/null)
IFS=$si
}