bash에서 git에 대한 분기 이름의 대소 문자를 구분하지 않는 완성을 구성하는 방법은 무엇입니까?

bash에서 git에 대한 분기 이름의 대소 문자를 구분하지 않는 완성을 구성하는 방법은 무엇입니까?

저는 웹 개발에 Debian Stretch를 사용합니다. 기본 쉘은 bash입니다. 소스 버전 관리를 위해 git을 사용합니다. 대소 문자를 구분하지 않고 완성되는 git 브랜치 이름을 갖고 싶습니다. 현재 TAB키를 사용한 완성은 대소문자를 구분합니다. 어떻게 이를 달성할 수 있나요?

여기 내 /etc/inputrc.conf가 있습니다. 루트로 편집하고 일반 사용자로 다시 로드합니다.bind -f /etc/inputrc

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
"\e[5~": beginning-of-history
"\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif


# go right to showing multiple options
# set show-all-if-ambiguous on
# TAB by itself cycles through options
# "\t": menu-complete

$if Bash
    # no shift needed; less typing = good
    set completion-ignore-case on
    # append a '/' to show a dir is a dir
    set mark-directories on
    set mark-symlinked-directories on
    # use ls -F style highlights for completion
    set visible-stats on
    # go right to showing multiple options
    # set show-all-if-ambiguous on
    # TAB by itself cycles through options
    # "\t": menu-complete
    # ESC-i cycles through options
    # "\e-i": menu-complete
$endif

# Two silly macros
#
# Insert double quotes & set cursor between them
"\C-x\"": "\"\"\C-b"
#
# Insert single quotes & set cursor between them
"\C-x'": "''\C-b"

답변1

당신이 말하는 것은 명령 또는 파일 완성(그리고 명령은 물론 파일입니다)과 반대되는 매개변수 완성입니다.

Bash의 매개변수 완성은 완료 무시 케이스를 존중하지 않는 것처럼 보입니다. 파일 이름 일치만 존중합니다. 에서 man bash:

   completion-ignore-case (Off)
          If set to On, readline performs filename matching and completion in a case-insensitive fashion.

테스트할 때 매개변수 완성(예: man자체)을 지원하는 명령은 완료 무시 기능이 켜져 있어도 대소문자를 구분합니다.

관련 정보