Zsh zinit 로드 OhMyZsh 플러그인 별칭 건너뛰기

Zsh zinit 로드 OhMyZsh 플러그인 별칭 건너뛰기

zsh에서 git 완성을 로드하기 위해 zinit를 사용하여 이 플러그인을 사용하고 싶습니다.

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플러그인이 로드되기 직전에 아무 것도 명령에 별칭을 지정하지 않았습니다(make stage).

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

참고: alias 명령은 프로세스가 끝나면 복원되므로 make stage에 추가된 명령은 zinit 로딩으로 범위가 지정되는 것 같습니다.

관련 정보