Zsh zinit lädt OhMyZsh-Plugin und überspringt Aliase

Zsh zinit lädt OhMyZsh-Plugin und überspringt Aliase

Ich möchte diese Plugins mit zinit verwenden, um Git-Vervollständigungen in zsh zu laden

zinit wait lucid for \
  OMZL::git.zsh \
  OMZP::git

Aber die Aliase sind mir egal, es gibt wirklich zu viele Aliase, ich habe bereits meine eigenen.

Wie kann ich diese Aliasdefinitionen überspringen?

Ich habe versucht, den Alias-Befehl während des Ladens des Plugins zu deaktivieren, aber es funktioniert nicht

zinit wait lucid for \
  atinit"alias alias=" \
  atload"unalias alias" \
  OMZL::git.zsh \
  OMZP::git

Irgendwelche Ideen ?

Antwort1

Ich habe diese Lösung gefunden, die gut zu funktionieren scheint

zinit wait lucid for \
  atinit'save_aliases=$(alias -L)' \
  atload'unalias -m "*"; eval ${save_aliases}; unset save_aliases' \
  OMZP::git

Ich entferne auch die Bibliothek OMZL::git.zsh, da ich powerlevel10k verwende (sie war überflüssig).

Aber nachdem dieser Trick zu anderen Plugins wie Kube- oder Git-Plugins hinzugefügt wurde, trat ein Nebeneffekt auf, da das Laden des Plugins asynchron erfolgt.

Ich bin bei Folgendem gelandet, und es scheint bislang gut zu funktionieren: Ich habe aliasden Befehl einfach direkt vor dem Laden des Plugins (Make-Phase) mit einem Alias ​​auf nichts festgelegt.

zinit ice as"completion"
zinit wait lucid depth=1 for \
  make'alias alias=' \
  OMZP::docker \
  make'alias alias=' \
  OMZP::docker-compose

Hinweis: Der Alias-Befehl wird am Ende des Prozesses wiederhergestellt, daher gehe ich davon aus, dass die zur Erstellung der Bühne hinzugefügten Befehle auf das Laden von Zinit beschränkt sind.

verwandte Informationen