zsh를 사용하면 어떻게 특정 스크립트에 자동 완성을 추가하고 파일에서 자동 완성 옵션을 사용할 수 있나요?

zsh를 사용하면 어떻게 특정 스크립트에 자동 완성을 추가하고 파일에서 자동 완성 옵션을 사용할 수 있나요?

단일 명령줄 인수를 사용하는 작은 쉘 스크립트를 작성했습니다.

매개변수 작성을 시작할 때 자동 완성을 원합니다. 자동 완성 선택 항목은 특정 텍스트 파일에서 나와야 합니다.

예를 들어, 내 텍스트 파일에 다음이 포함되어 있다면

foo
foobar

글쓰기를 시작 my-cli fo하고 I like zsh를 누르면 TAB선택 항목 foofoobar.

관련 문서나 튜토리얼에 대한 조언을 환영합니다.

답변1

비슷한 문제로 어려움을 겪고 있지만 좀 더 복잡합니다. 정적 자동 완성 옵션 파일을 사용하면 다음 코드가 저에게 효과적이었습니다.

#compdef test

_test_comp(){
 t=($(cat /tmp/file_with_opts))
 _wanted t expl "availavle options" compadd -a t
}

_arguments -C -S  \
 '*:test_autocomplete:_test_comp'

이런 식으로 스크립트는 test다음에서 옵션을 얻습니다./tmp/file_with_opts

관련 정보