Apple - OS X Terminal equivalent of Ctrl+Left / Ctrl+Right

This was driving me crazy too, however I didn't want a Terminal-specific fix as I don't use Terminal, and being able to SSH into my OSX box had to use the correct keybindings too.

Also, personally, I didn't care about the key as discussed earlier; I wanted to maintain the ctrl+/ combination that I'm used to on Linux.

To solve this problem, I added the following to my ~/.profile:

bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

Note the first two apply to bash in Terminal; the last two apply to bash in iTerm2 and incoming ssh connections. Don't ask me why the keyboard emulation is different ;)

For the record, I was able to find what the keycodes actually were thanks to a hint from this stackoverflow answer: You can run cat > /dev/null to monitor the exact keycodes sent during a key combination.

(Note that for me, when I run cat > /dev/null and press ctrl+ it produces ^[[1;5D. Your exact keycode may differ, but the first ^[ is represented as \e, as shown in my example code.)

BTW, if you want to see all active bash keybindings, run bind -p.


You can use the key, but you have to select the option to use it as the "meta" key: alt text

Once you do that, +F and +B will work as you expect.


As of Mac OS X Lion 10.7, Terminal maps -/ to esc+B/F by default, so this is now built-in for bash and other programs that use these emacs-compatible keybindings.