
我想使用這些外掛程式使用 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 載入中。