Bash에서 대소 문자를 구분하지 않는 탭 완성


142

Bash 탭을 대소 문자를 구분하지 않는 방법으로 사용할 수 있습니까?

$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.

Mac OS X 10.6을 사용하고 있습니다

답변:


170

/etc/inputrc포함 하도록 텍스트 업데이트

사건을 무시하고 무시하다

그런 다음을 사용 ^X ^R하여 구성을 다시로드하십시오.


30
"또한"- /etc/inputrc또는로 ~/.inputrc지정된 파일 INPUTRC만 이동할 수 있습니다. Bash 프롬프트에서 입력하면 작동하지 않습니다.
Dennis Williamson

으악! 당신이 맞아요 :)
John T

10
^X ^Rinputrc
새로

14
@DennisWilliamson : bind "set completion-ignore-case on"명령 행에서 할 수 있습니다 . 터미널 세션에만 해당됩니다
Clay Bridges

1
그래서 그건 msysgit을 가지고 있지만 MSYS2가 무엇이 부족! 여기서 나는 / etc / profile에서 그것을 찾으려고 노력했다 ...
SamB

111

사용의 장단점 대조하는 가늠자의 이익으로 재구성 [.]inputrc대를 .bash_profile. 그의 도움
을 위해 underscore_d에 대한 모자의 팁 .

참고 : Bash의 명령 줄 편집은 Readline 라이브러리에서 제공합니다. 그것을 커스터마이징하는 것은 사소하지는 않지만 학습 가치가 있습니다. 이 기능에는 미리 정의 된 텍스트 스 니펫을 삽입하기위한 사용자 정의 키보드 단축키를 정의하는 기능이 포함 되어 있습니다. Bash Reference Manual의 Command Line Editing 참조하십시오.

하려면 지속적으로 배쉬 탭 완성은 대소 문자를 구분합니다


옵션 A : 이미 가지고있는 경우 :

  • /etc/inputrc파일 (시스템 전체에 적용, 수정 필요 sudo)
  • 및 / 또는 ~/.inputrc파일 (사용자 별)

    그리고 / 또는

readline 라이브러리를 광범위하게 사용자 정의하거나 스크립트 를 호출 할 때 스크립트 에도 사용자 정의를 효과적으로 적용 하려고합니다 read -e.

라인 추가

set completion-ignore-case on

파일, 당신은 설정 여부에 따라서 효과적인 것으로 모든 사용자 또는 현재 사용자 (필요한 경우, 파일을 만듭니다).

파일 및 디렉토리 이름을 쉽게 완성 할 수있는 관련 명령은 다음과 같습니다.

set show-all-if-ambiguous on

일치하는 항목이 둘 이상인 경우 Tab 키를 두 번 누를 필요가 없습니다 .


옵션 B : 또는 ~/.bash_profileOS X (또는 ~/.bashrcLinux) 의 사용자 특정 파일에 readline 명령을 내장 인수에 단일 인수 로 전달하여 추가 할 수 있습니다 .bind

bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"

bind의 명령은 ~/.bash_profile/ ~/.bashrc하나에 해당하는 명령보다 우선 /etc/inputrc~/.inputrc.

위에서 암시 된 것처럼,이 방법으로 정의 된 Readline 구성은 사용자 입력을 읽기위한 Readline 지원을 활성화하기 위해 호출 하는 스크립트 에는 적용 되지 않습니다 .read -e


10
show-all-if-ambiguous가 너무 좋습니다! 나는 종종 왜 그들이 그 행동을 수행하기 위해 두 번 탭을했는지 궁금해했다. 내 미래에 수천 건의 키 입력이 저장되었습니다! 감사!
user34112

4
굉장히 cd명령 까지도 가능 합니다. 어느 것이이 질문을 해결 하고 수천 번의 키 입력을 절약 할 수 있습니다. :)
hoosierEE 2016 년

1
그레이트 포인트 다시 show-all-if-ambiguous. 그러나 "대안으로" 라고 말했기 bind때문에 inputrc파일을 불필요하게 만드는 것처럼 보일 때 실제로 이것을 통해 어떤 이점이 있습니까?
underscore_d

1
@underscore_d : 좋은 질문입니다. 업데이트 된 답변을 참조하십시오.
mklement0

1
감사합니다! 데비안 8.2에서는 어느 것도 inputrc없었지만 ~/.inputrc, 이것들과 다른 유용한 지시어를 행복하게 만들고 추가했습니다. 모든 독자가 /etc/inputrc 다른 사용자에게 영향 을 미치는 것을 알고 있다고 가정합니다 (후자가 영향을받는 설정을 무시하지 않는 한)? 우리가 경고를 언급하는 동안;)
underscore_d

1

모든 사용자의 구성을 변경하지 않고 루트 권한을 피하려면 다음을 사용하십시오.

if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc

그런 다음 ~ / .inputrc를 다시 로그인하거나 다시로드하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.