Como configurar conclusão insensível a maiúsculas e minúsculas de nomes de ramificação para git no bash?

1

Eu uso o Debian Stretch para desenvolvimento web. Seu shell padrão é bash. Eu uso o git para versionamento de fontes. Eu gostaria de ter nomes de ramificações git com conclusão insensível a maiúsculas e minúsculas. No momento, a conclusão usando a tecla TAB faz distinção entre maiúsculas e minúsculas. Como posso conseguir isso?

Aqui está meu / etc / inputrc. Eu edito como root e o recarrego como usuário regular com 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"
    
por Marecky 01.06.2017 / 23:06

1 resposta

2

O que você está falando é a conclusão do parâmetro, ao contrário do comando ou da conclusão do arquivo (e os comandos são arquivos, é claro).

Parece que a conclusão do parâmetro no Bash não respeita o case completion-ignore-case - apenas a correspondência de nome de arquivo é. De man bash :

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

Quando eu testo, comandos que suportam a conclusão de parâmetros (como o man em si) diferenciam maiúsculas de minúsculas, mesmo que eu tenha completado o caso ignore-case.

    
por 01.06.2017 / 23:57