저는 웹 개발에 Debian Stretch를 사용합니다. 기본 쉘은 bash입니다. 소스 버전 제어를 위해 git을 사용합니다. Git 브랜치 이름이 대소문자를 구분하지 않기를 바랍니다. 현재 TAB키를 사용한 완성은 대소문자를 구분합니다. 이 목표를 어떻게 달성할 수 있나요?
이것은 내 /etc/inputrc.local입니다. 루트로 편집하고 일반 사용자로 다시 로드했습니다.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
자신과 마찬가지로)은 대소문자를 구분했습니다. 대소문자를 무시하도록 완료 기능을 켰음에도 불구하고 말이죠.