Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I use Ctrl- and Ctrl- on every Linux system I work on, but these key combinations don't work in bash on my Macbook Pro. It is running Snow Leopard, and I'm using the built in Terminal application.

The key combinations don't seem to be captured by anything before or by Terminal, because if I ssh to one of my Linux servers, I can use Ctrl-/ to jump to the next/previous word on the command line. However, when I try this key combination in bash on my Macbook, I just get "C" for right arrow and "D" for left arrow.

Any ideas on how I can get these keys to work in darwin bash?

share|improve this question
If you are using Spaces, Ctrl + arrow by default switches spaces. – mark4o Oct 31 '10 at 21:19
Similar – Dennis Williamson Oct 31 '10 at 21:36
up vote 11 down vote accepted

OS X uses emacs key binding my default. This is true is virtually every application on OS X, it's rather nice. It means things like C-a and C-e are beginning/end of line. You also get the nifty backward-word-kill with M-backspace, oh, and kill-line with C-k.

This should mean that in your terminal forward/backward-word are bound to M-f and M-b, respectively (M = Meta = alt/option), however that is not the case. On OS X forward/backword-word are bound to M-→ and M-← by default.

You can alter this behavior by changing how the GNU Readline Library is configured for your account. This takes place in your ~/.inputrc file. You can get a big list of bindable commands with man readline as well as in the online documentation like this here..

So to answer your question, you want to remap what Readline does when it sees C-→ and C-← to do what it does on your linux server.

The syntax for a ~/.inputrc file is pretty simple for what you want to do: key-sequence: action.

This should be what you need to get the desired behavior:

"\e[5C": forward-word
"\e[5D": backward-word

Here's another page with additional useful bindings.

(You could probably get away with copying /etc/inputrc from your linux box to your OS X ~/.inputrc)

share|improve this answer
A note: If you are using tmux with xterm-keys a lot, you will also need \e[1;5C and \e[1;5D to also trigger forward-word and backward-word. – Arne Jan 26 '14 at 10:45
Another note: If still not working, it may be because of a shortcut conflict with Mission Control/Spaces. System Preferences -> Keyboard -> Shortcuts -> Mission Control, Move left/right a space – bhh1988 Jul 7 '14 at 5:25

put in ~/.inputrc following lines:

"\e[5C": forward-word
"\e[5D": backward-word
share|improve this answer

You must log in to answer this question.

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