make 명령을 입력할 때만 자동 완성할 수 없습니다.

make 명령을 입력할 때만 자동 완성할 수 없습니다.

저는 우분투 리눅스 10.04를 실행하고 있습니다.

내 .bashrc 파일에 다음이 있습니다.

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

다음을 입력할 때만 자동 완성에 문제가 있습니다.

만들다 Tab

어떤 이유로 작동이 멈추고 이 상황에서 벗어날 수 있는 유일한 방법은 키보드 인터럽트를 보내는 것입니다. 이상한 점은 다른 프로그램을 실행할 때 자동 완성에 문제가 없다는 것입니다 ...

내 질문은 이것에 대한 특별한 이유가 있습니까? make의 자동 완성 명령을 구체적으로 변경하는 방법이 있습니까?

이 질문을 읽었습니다.tcsh에서 Makefile 규칙 자동 완성, 하지만 내 시스템 어디에서나 tcsh 파일을 찾을 수 없습니다.

이것은 set-x와 make의 결과입니다.Tab

make + local file makef makef_dir=. makef_inc cur prev i split=false
+ COMPREPLY=()
++ _get_cword
++ '[' -n '4.1.5(1)-release' ']'
++ __get_cword4
++ local i
++ local LC_CTYPE=C
++ local 'WORDBREAKS=   
"'\''><=;|&(:'
++ WORDBREAKS='     
'\''><=;|&(:'
++ WORDBREAKS='     
><=;|&(:'
++ '[' -n '' ']'
++ local 'cur=make '
++ local 'tmp=make '
+++ expr 'make ' : '.*[     
><=;|&(:]'
++ local word_start=5
++ '[' 5 -ge 2 ']'
++ local char=e
++ '[' e '!=' '\' ']'
++ break
++ cur=
++ printf %s ''
+ cur=
+ prev=make
+ _split_longopt
+ [[ '' == --?*=* ]]
+ return 1
+ case $prev in
+ false
+ [[ '' == -* ]]
+ (( i=0 ))
+ (( i < 2 ))
+ [[ make == -C ]]
+ (( i++  ))
+ (( i < 2 ))
+ [[ '' == -C ]]
+ (( i++  ))
+ (( i < 2 ))
+ (( i=0 ))
+ (( i < 2 ))
+ [[ make == -f ]]
+ (( i++  ))
+ (( i < 2 ))
+ [[ '' == -f ]]
+ (( i++  ))
+ (( i < 2 ))
+ '[' -n '' ']'
+ '[' -n . ']'
+ makef_dir='-C .'
+ COMPREPLY=($( compgen -W "$( make -qp $makef $makef_dir 2>/dev/null      |              awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/     \
            {split($1,A,/ /);for(i in A)print A[i]}' )"             --     "$cur" ))
+++ make -qp -C .
+++ awk -F: '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ \
        {split($1,A,/ /);for(i in A)print A[i]}'

관련 정보