2014-04-04 4 views
7

bash 완전한 특성을 수정하려고합니다.bash에서 두 개의 파일 확장자 지정하기

내가 thusly 히 명령에 대한 파일 확장자를 제외 할 수

complete -f -X '*hi' vim 

나는 제외 할 두 개의 파일 이름을 지정합니다. 어떻게해야합니까?

참고 : 다음 명령이 작동하지 않았습니다. 이 작업을 수행하는

complete -f -X '(*hi|*o)' vim 

답변

6

한 가지 방법은 globs와 확장 에 설정하는 것입니다. 명령 줄에서이 프로그램을 실행하거나 .bashrc에에 추가하는 것은이 영구적으로 :

shopt -s extglob 

을 지금, 당신의 전체 명령은 다음과 같이 할 수 있습니다

에 globs와
확장 에서 인용
complete -f -X '*[email protected](hi|o)' vim 

patterns :

@(list): Matches one of the given patterns. 
+0

다른 모든 예제와 동일하지만 작동하지 않습니다. 축 어적으로 붙여진 4.3.30은 여전히'.o' 파일을 완성합니다. 하나의 확장을 제공 할 때 잘 작동합니다. – jozxyqk

+0

이것이 작동하려면'bash-completion' 패키지가 설치되어 있어야하고'~/.bashrc '에'/ etc/bashrc'를 통해 제공되어야합니다. 그러나 나는'ls $ DIR/somefil 과 같은 적절한 환경 변수 확장 (http://stackoverflow.com/questions/6418493/bash-variable-expansion-on-tab-complete)을 깨기 때문에 광산을 제거했다. '. – jozxyqk