如果前缀为双破折号 (--),则 npm 自动完成功能会被破坏

如果前缀为双破折号 (--),则 npm 自动完成功能会被破坏

当使用在双破折号后接受附加参数的命令时,我注意到这一点,例如:

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 
}

相关内容