zsh 완료를 선택적으로 비활성화할 수 있나요?

zsh 완료를 선택적으로 비활성화할 수 있나요?

저는 prezto를 사용하고 있는데 zsh새 셸을 시작하는 것이 약간 느리다는 것을 알았습니다. (참고로 저는 구성을 다른 느린 시스템으로 이동하기 전에 빠른 시스템에서 최적화하려고 합니다.)

벤치마크 time zsh -i -c exit:

  • 0.046 bash:.
  • 0.080: zsh프레즈토가 없습니다.
  • 0.092: zshprezto가 있지만 모듈이 로드되지 않았습니다.
  • 0.138: zshprezto를 사용하고 completion.
  • 0.308: zshprezto를 사용하고 모든 "기본" 모듈을 로드합니다.

첫째, 로딩 zsh보다 bash74% 느 립니다. 73%의 추가 속도 저하(prezto 및 완료 로딩을 제외한 모든 모듈 사용)를 수용할 수 있지만 285% 속도 저하(모든 모듈 사용)는 약간 너무 높습니다.

이러한 완성 중 일부는 유용하므로그 중 일부를 선택적으로 비활성화하는 방법이 있습니까?나는 이것에 대해 들어본 적이 있다다른 곳에서, 이것이 단지 탭 완료 속도를 높이기 위한 것인지, 아니면 쉘 로딩 속도를 높이기 위한 것인지는 확실하지 않습니다. (선택적으로 완료를 비활성화할 수 있다면 속도 저하의 원인을 분석하고 파악할 수 있습니다.)

답변1

prezto가 /usr/lib/prezto/modules/completion. 모든 것이 활성화된 상태에서 콘텐츠를 제거했는데 /usr/lib/prezto/modules/completion/init.zsh, 이는 다시 두 번째로 빠른 로딩 시간을 제공했습니다. 그런 다음 해당 파일에서 체계적으로 줄을 삭제하기 시작했고 속도 저하를 일으키는 한 줄을 격리할 수 있었습니다.

unsetopt CASE_GLOB

compinit내 특별한 경우에는 prezto가 ~/.zshrc꺼진 상태로 실행 되어 속도가 느려지고 compinit로딩 시간이 3배로 늘어났다는 점에 유의하세요.

관련 정보