zsh 완료가 '서비스'에 대해 작동하지 않습니다.

zsh 완료가 '서비스'에 대해 작동하지 않습니다.

"서비스"를 사용하면 zsh completion기본값만 가져오고 start완료 stop됩니다.

zsh"서비스"의 완료는 에 의해 처리됩니다 /usr/share/zsh/functions/Completion/Unix/_init_d.

예를 들어 에 대해 완성 기능을 사용할 때 service ssh <TAB>ssh 시작 파일을 구문 분석 /etc/init.d/ssh하고 다음과 같은 모든 사례 문을 가져와야 합니다.

restart)

...

try-restart)

하지만 Case문 뒤에 코멘트가 있으면 작동하지 않습니다.

restart) ### comment

...

try-restart) ### comment

_init_d나는 파싱 부분이 다음과 같다고 생각한다.

read -u0 -k2 magic < $script && [[ $magic = '#!' ]] && {
  cmds=( ${(f)"$(< $script)"} )
  cmds=( ${(M)cmds:#[[:blank:]]#${~what}([[:blank:]]#\|[[:blank:]]#${~what})#[[:blank:]]#\)} )
  cmds=( ${${(j:|:s:|:)cmds}//[^-a-z_]} )
}

주석이 Case 문 뒤에 있어도 구문 분석되도록 수정하려면 어떻게 해야 합니까?

관련 정보