I use Ubuntu 16.04 for web development. Its default shell is bash. I use git for source versioning. I would like to have git branch names with case insensitive completion. At the moment, completion using TAB key is case sensitive. How can I achieve this?

Here is my /etc/inputrc. I edit it as root and reload it as regular user with 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

# 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


# 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

# 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"
  • @DavidFoerster OMG! Yes You are right, sorry I didn't realized. Is there any option to automatically move it to unix.stackexchange.com please? – Marecky Jun 1 '17 at 21:01
  • ok, I asked same question on Unix & Linux by my self, Here I rolled back changes, so this could help anybody with Ubuntu – Marecky Jun 1 '17 at 21:10

Based on https://superuser.com/questions/271530/make-bashs-tab-completion-case-insensitive , add

set completion-ignore-case on

in /etc/inputrc . Then open a new terminal to experience the changes.

  • This doesn't work on Bash 3.2 (MacOS 10.12, bash 3.2.57). set completion-ignore-case on affects only completion done by bash itself, but not completions done by the various plug-ins to bash-completion. – Steve Madsen Jul 26 '17 at 19:24

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.