我想使用这些插件使用 zinit 在 zsh 中加载 git 补全
zinit wait lucid for \
OMZL::git.zsh \
OMZP::git
但我不在乎别名,我自己的别名实在太多了。
如何跳过这些别名定义?
我尝试在插件加载时禁用别名命令,但它不起作用
zinit wait lucid for \
atinit"alias alias=" \
atload"unalias alias" \
OMZL::git.zsh \
OMZP::git
有任何想法吗 ?
答案1
我发现这个解决方案似乎效果很好
zinit wait lucid for \
atinit'save_aliases=$(alias -L)' \
atload'unalias -m "*"; eval ${save_aliases}; unset save_aliases' \
OMZP::git
我还摆脱了库 OMZL::git.zsh 因为我正在使用 powerlevel10k (它是多余的)
但是将这个技巧添加到其他插件(如 kube 或 git 插件)后,会产生副作用,因为插件加载系统是异步完成的。
我最终得到的结果到目前为止似乎运行良好,我只是alias
在加载插件(制作阶段)之前将命令别名为空。
zinit ice as"completion"
zinit wait lucid depth=1 for \
make'alias alias=' \
OMZP::docker \
make'alias alias=' \
OMZP::docker-compose
注意:alias 命令在进程结束时恢复,因此我猜测添加到 make 阶段的命令将被限制在 zinit 加载中。