2009-04-29 7 views
12

나는 ~/.unison/*.prf에 존재하는 일치 프로파일 목록을 가지고 있습니다.특정 디렉토리에있는 특정 유형의 파일에 대한 bash 완성

나는 unison 또는 unison-gtk를 입력하고 탭을 쳤을 때 그것은 .prf 부분없이 해당 폴더에서 .prf 파일을 나열 할 수 있도록 bash는 완료를하고 싶습니다.

아마도 예 명확하게 될 것이다 : 나뿐만 아니라 다른 도구이 필요하다고 예상되는

$ ls ~/.unison/*.prf 
default.prf dot-mozilla.prf to-desktop.prf 

$ cd ~ # just to show you don't have to be in the ~/.unison folder 
$ unison to<tab> 
$ unison to-desktop 

, 재사용 할 수있는 부분이 있다면 편리 할 것입니다 때문에.

답변

15

debian/우분투 또는 다른 GNU/Linux 배포판을 사용하는 경우 /etc/bash_completion.d/ 디렉토리에 이러한 유형의 완료 예가 있어야합니다. 다음은 조화에 대한 완료 스크립트를 설정하는 방법의 예입니다

have unison && 
_unison_show() 
{ 
     local cur 

     COMPREPLY=() 
     cur=${COMP_WORDS[COMP_CWORD]} 
     COMPREPLY=($(compgen -W "$(for x in ~/.unison/*.prf; do echo $(basename ${x%.prf}); done)" -- $cur)) 
} 
complete -F _unison_show unison 
+0

큰 작품이, 내가 한 유일한 변화는 완전한 -o nospace -F _unison_show 조화 조화-GTK했다 –

관련 문제