완료 시 하위 디렉터리로 cd할 별칭을 어떻게 설정합니까?

완료 시 하위 디렉터리로 cd할 별칭을 어떻게 설정합니까?

나는 내에서 이 기능을 설정했습니다 ~/.zshrc.

cdp() {
  cd "/mnt/c/Users/Mark/PhpstormProjects/$1"
}

그러나 나는 그것에 대한 탭 완성을 얻지 못합니다. Tab 키를 누를 때 디렉터리 이름을 자동 완성할 수 있는 방법이 있나요?

답변1

정의하다완전한 기능을 위한 cdp. 관례적으로 이 함수를 이라고 합니다 _cdp. 에서 정의 .zshrc하고 명시적으로 할당 할 수 있습니다.compdef.

_cdp () {
  … # code goes here
}
compdef _cdp cdp

또는 $fpath호출하는 _cdp파일 에 완료 코드를 넣으세요.자동 로딩 지침 완료.

#compdef cdp
… # code goes here

목차를 완성하려면 다음을 사용하세요._files -/. 현재 디렉토리와 관련된 다른 위치에서 디렉토리를 완성하려면 다음을 사용하십시오.-W옵션. 이 함수는 하나의 매개변수만 허용하므로첫 번째 매개변수만 완료하세요..

_cdp () {
  ((CURRENT == 2)) &&
  _files -/ -W /mnt/c/Users/Mark/PhpstormProjects
}

이 기능 외에도 디렉토리 추가를 선호할 수도 있고 선호하지 않을 수도 있습니다.cdpath.

cdpath+=/mnt/c/Users/Mark/PhpstormProjects

관련 정보