18

I have this ~/.inputrc file that I created for certain key bindings.

# 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

whenever I try to run source ~/.inputrc, it gives me the following error:

\e[1;5C:forward-word: Command not found. \e[1;5D:backward-word: Command not found. \e[5C:forward-word: Command not found. \e[5D:backward-word: Command not found. \e\e[C:forward-word: Command not found. \e\e[D:backward-word: Command not found.

It also doesn't work when I open a new terminal, I don't get the error but my ctrl key combinations are not working in new terminal as well. I created this file myself since I do not have root access to change /etc/inputrc. Can anybody help me out? Thanks.

EDIT: I've tried the file with space after the colon (:) sign as well. It doesn't work. I also tried my making it executable (chmod +x ~/.inputrc), didn't work.

EDIT: I realized that this procedure is only for 'bash' and I am running 'tcsh'. For 'csh', use .bindings file instead of .inputrc file and use bindkey syntax.

3 Answers 3

17

For bash, this will reload now the currently defined mappings

bind -f  ~/.inputrc
5
  • Where to get the bind command from? Commented May 23, 2018 at 10:57
  • bind is a shell builtin. What os are you running? Commented May 24, 2018 at 16:28
  • I'm using Debian with zsh. Commented May 24, 2018 at 16:50
  • this did not work for me with bash on RHEL 7. My .inputrc bindings are still not re-loading after running this command. Commented Dec 5, 2018 at 16:27
  • @user5359531, could it be that your previous bindings are not "un-loading"? (If they're not set explicitly, they'll remain as they were before.) Or maybe something else, like your ~/.inputrc doesn't $include /etc/inputrc? Commented Jan 19, 2019 at 13:39
7

The .inputrc file is not a file to be sourced. It should be taken into account automatically by bash or other software using the readline library. If this doesn't work, add a space after the colon, e.g.

"\e[1;5C": forward-word

(I've always seen a space in this config file).

2
  • 1
    +1 Emphasis on "other software using the readline library". .inputrc is not a shell script; it's a readline configuration file. Commented Sep 2, 2014 at 20:04
  • Actually, that's how I had it first and I changed it to without space just to try it out. It doesn't work either way. I've added that in the edit. Thanks. Commented Sep 2, 2014 at 21:36
7

The key bindings and ~/.inputrc file posted in question is for bash. For csh (or tcsh) use a file ~/.bindings and use following syntax.

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

Realized this after some googling.

2
  • 2
    For whatever reason, my tsch was ignoring the .bindings file. Adding source ~/.bindings to my ~/.cshrc file fixed this. Commented Jun 7, 2018 at 18:18
  • @drmuelr, if you need to do a source, you may as well have called the file .bindkeys (or any other name as a matter of fact). I have the same issue as that my tcsh (version 6.17 does not automatically source the .bindings file). Maybe @rrlamichhane can comment on what tcsh version he is using ? Commented Oct 10, 2022 at 11:20

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.