4
나는 완성 일 것이다 종류배쉬 완료 (CD의 CCN <tab> => CD를 Camel.CaseName는)
Foo.Bar.Baz/
Foo.Bar.QuickBrown.Fox/
Foo.Bar.QuickBrown.Interface/
Foo.Bar.Query.Impl/
의 파일/디렉터리 이름 완성을 구현하는 방법을 찾고 있어요 같은
~ $ cd QI<tab><tab>
Foo.Bar.QuickBrown.Interface/ Foo.Bar.Query.Impl/
~ $ cd QIm<tab><enter>
~/Foo.Bar.Query.Impl $
그러나, 입력에서 글로브 패턴을 구축 내 단순한 접근 방식 (예 : QIm
-.>*Q*I*m
는) 정확히 같은 접두사를 공유하는 파일/디렉토리에 대해 작동하지 않습니다. 위의 경우, I는
~ $ cd QI<tab><tab>
Foo.Bar.QuickBrown.Interface/ Foo.Bar.Query.Impl/
~ $ cd Foo.Bar.Qu<tab><tab>
Foo.Bar.QuickBrown.Fox/ Foo.Bar.QuickBrown.Interface/ Foo.Bar.Query.Impl/
즉 배시 달성 가능한 가장 긴 공통 프리픽스와 현재 단어를 대체하는 더 얻을 완료 집합이 경우 결과이다.
_camel_case_complete()
{
local cur pat
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
pat=$(sed -e 's/\([A-Z]\)/*\1*/g' -e 's/\*\+/*/g' <<< "$cur")
COMPREPLY=($(compgen -G "${pat}" -- $cur))
return 0
}
어떤 힌트를 어떻게 정상적인 파일 이름/디렉토리 완료를 파괴하지 않고이 문제를 해결하는 :
여기 내 완성 기능입니까?