쉘이 시작될 때 완료 기능을 로드하는 경우 미친 듯이 동일한 폴더에서 작업하기 위해 쉘을 생성합니다.
폴더가 포함된 저장소를 대상으로 하는 여러 완성 함수가 있는 경우 .git
해당 저장소에 있으면 이러한 함수가 로드됩니다.
문제는 새 쉘이 생성될 때 모든 완료가 시작되면 쉘 프롬프트가 다소 느리게 표시된다는 것입니다.
그렇다면 로드/ source
완료 기능을 수동으로 어떻게 트리거합니까? 이미 저장소에 있다는 것을 알고 있음에도 불구하고 .git
완료 기능을 사용하기 전에 수동으로 로드하고 싶습니다. 느린 셸 빌드 비용은 완료 자체보다 높습니다.
답변1
시작 시 완료 함수를 로드하는 대신 자동으로 로드되도록 선언하세요. 이렇게 하면 각 함수가 처음 사용될 때 로드됩니다.
이를 수행하는 일반적인 방법은 각 함수에 대한 코드를 $fpath
함수에 부여하려는 이름으로 호출되는 .file에 넣는 것입니다. 파일의 첫 번째 줄에 추가#compdef
상표.
따라서 다음과 같은 내용이 있는 경우 .zshrc
:
autoload -Uz compinit
compinit -u
_foo () {
code goes here
}
compdef _foo foo
그런 다음 이것을 다음 항목에 넣으십시오 .zshrc
.
fpath=(~/.zsh/functions $fpath)
autoload -Uz compinit
compinit -u
~/.zsh/functions/_foo
다음을 포함하는 파일을 만듭니다.
#compdef foo
code goes here