Mapping Option+left arrow to go back a word

On macOS, using bash. I want to map the Option+left arrow keys to go back a word, and Option+right arrow keys to go forward a word.

Am sure this is common knowledge, but I wasn’t sure what to do. Thanks to this StackOverflow post, I figured it out.

In the terminal, run catand then press Option+left arrow. This appears as ^[^[[D. The ^[ bit is your escape key basically. In bash you’d represent it as \e. So ^[^[[D translates to \e\e[D in bash.

Ditto for Option+right arrow which translates to \e\e[C in bash.

Armed with these two pieces of info, you can use the builtin bind command to map them to back and forward word movements.

Add these to .bash_profile (or .bashrc) and you are in business.

Extra info: By default the Esc+b and Esc+f keys are bound to these two. That can be seen by the bind -q command.

To make this useful in iTerm2 on macOS, one can map the Option key to the Esc+ key. This does not map the Option key to the Esc key, but the Esc+ action – which basically means Esc plus whatever key you press. Treats it like a modifier basically.