No matter what I try I can't get bash to load my ~/.inputrc file. The most minimal example I have tested is getting rid of my ~/.bashrc and then having a single line in my ~/.inputrc with

set completion-ignore-case on

Even so, I can't tab complete without case sensitivity.

If I simply do bind -f ~/.inputrc, then the setting is loaded.

Am I missing something? Isn't it supposed to be loaded automatically? I am using Fedora with bash 4.4.23 and readline 7.0.

  • Try disabling the programmable completion with shopt -u progcomp. – mosvy May 11 '19 at 5:44
  • 2
    Do you have an INPUTRC environment variable set? If you do it would attempt to use the filename specified rather than taking the default. git.savannah.gnu.org/cgit/readline.git/tree/bind.c#n920 – icarus May 11 '19 at 5:53
  • @icarus You nailed it! I'll accept your answer if you want to make it a full one. I had set INPUTRC to ~/.config/inputrc (trying to declutter my HOME directory) but somehow forgot about that and had fallen back to editing ~/.inputrc. – ws_e_c421 May 18 '19 at 3:39

Bash uses the readline library to do interactive input processing. This library is responsible for reading the initialization file. By default this is ~/.inputrc, but an INPUTRC environment variable provides an override.

So if the ~/.inputrc file is not processed, check for a INPUTRC variable.

The next thing to check is that the lines being added are not within a conditional.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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