Zsh zinit 載入 OhMyZsh 外掛程式跳過別名

Zsh zinit 載入 OhMyZsh 外掛程式跳過別名

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

相關內容