
"서비스"를 사용하면 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 문 뒤에 있어도 구문 분석되도록 수정하려면 어떻게 해야 합니까?