zinitを使用してzshからgitコンプリートをロードするためにこのプラグインを使用したいと思います。
zinit wait lucid for \
OMZL::git.zsh \
OMZP::git
しかし、私はエイリアスに興味がありません。私のエイリアスが多すぎます。
これらのエイリアス定義をスキップするにはどうすればよいですか?
プラグインのロード中にaliasコマンドを無効にしようとしましたが、機能しません。
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
プラグインをロードする前に(プロダクションステップ)、コマンドエイリアスを空白のままにしました。
zinit ice as"completion"
zinit wait lucid depth=1 for \
make'alias alias=' \
OMZP::docker \
make'alias alias=' \
OMZP::docker-compose
注:aliasコマンドはプロセスの終わりに再開されるため、makeステップに追加されたコマンドはzinitロードに制限されると推測されます。