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

また、powerlevel10k を使用しているため、ライブラリ OMZL::git.zsh も削除しました (冗長でした)

しかし、このトリックを kube や git プラグインなどの他のプラグインに追加した後、プラグインの読み込みシステムが非同期で実行されるため、副作用が発生しました。

最終的には、これまでのところうまく機能しているように見えるこの方法に落ち着きましたalias。プラグインがロードされる直前 (make ステージ) に、コマンドを何も指定せずにエイリアスしただけです。

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

注: alias コマンドはプロセスの最後に復元されるため、make ステージに追加されたコマンドは zinit のロードにスコープされると思われます。

関連情報