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:
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.