Zsh zinit는 별칭을 건너뛰고 OhMyZsh 플러그인을 로드합니다.

Zsh zinit는 별칭을 건너뛰고 OhMyZsh 플러그인을 로드합니다.

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 로드로 제한될 것으로 추측됩니다.

관련 정보