6

When ~/.inputrc does not exist, hitting Ctrl+Left Arrow and Ctrl+Right Arrow on a Bash command line moves the cursor back and forward by one word, respectively.

However, if ~/.inputrc exists (regardless of whether or not it's empty), those two key combos result in ;5D and ;5C being printed where the cursor is instead of moving the cursor.

How can I fix that?

2 Answers 2

7

Its because if the file exists, bash uses your local settings for the readline settings instead of the default one.

From http://www.gnu.org/software/bash/manual/html_node/Readline-Init-File.html

"When a program which uses the Readline library starts up, the init file is read, and the key bindings are set."

The recommendation in the sample file at gnu.org is to source the default in your local one with a line like this:

$include /etc/inputrc

and then modify from there.

1
  • Still valid, at least on this somewhat old production server with old bash that I'm dealing with. I created a ~/.inputrc, and added "$include /etc/inputrc" ( without the quote ) to it. For some reason it won't get parsed when I ssh to the machine, but it does if I open a new bash shell by command. Creating .inputrc solved that though. Commented Aug 25, 2023 at 12:42
0

set -o emacs in your ~/.profile should do it.

1
  • 1
    I put set -o emacs in ~/.profile and ran touch ~/.inputrc . Unfortunately, the CTRL+LARROW and CTRL+RARROW keys still caused ;5D and ;5C to be printed instead of moving the cursor.
    – nickh
    Commented Apr 30, 2013 at 14:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .