I was reading up in the Linux manual and I noticed that it said I could use control+left and control+right to move forward and back words in the terminal while editing.

"Pressing Ctrl plus the Left or Right arrow key moves backward or forward a word at a time, as does pressing Esc and then B or F."

On OS X control+left and control+right normally control spaces. I have disabled those. I also tried to use the preferences pane to set the keyboard shortcuts:

enter image description here

enter image description here

However this does not work and causes this error:

enter image description here

Also, if I am in iTerm and use alt+escape then B or F the character moves back and forth. This was happening before any of my config changes. But I'd really like to be able to use control + the arrow keys.

  • Incidentally, a more parsimonious way to achieve this might simply be to map command+left and command+right instead of ctrl+left and ctrl+right. I didn't need to disable anything system-wide to accomplish this. – Juno Woods Jul 16 '14 at 19:35


Just add the following to ~/.inputrc:

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

See this archived Wiki post for some more explanation. If you want to use the alt key instead for word-to-word movement (like default OS X behavior), use:

"\e[1;9D": backward-word
"\e[1;9C": forward-word


zsh by default does not use the readline library and therefore won't read ~/.inputrc. To get the same functionality, you could add the following to your ~/.zshrc – this again would use the alt key:

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

See this documentation for more about the built-in zsh line editor (zle).

Why is this? You've set up your profile to use the Xterm defaults:

enter image description here

This is why you'll need to "catch" this sequence and tell readline what to do.

If the above still doesn't work and you are using OS X 10.9 (Mavericks) or there abouts, you probably need to disable the global Mission Control shortcuts which prevent Control+arrow keys from reaching iTerm, even if Mission Control itself is disabled. You can do so from System Preferences → Keyboard → Shortcuts → Mission Control:

mission control keyboard prefs

| improve this answer | |
  • 4
    I try to follow the instruction to get the alt + left and alt + right keys working. I added the two lines to my .inputrc file, but the only thing what happens when I press the keys is that either a "D" or a "C" gets printed to the shell. I'm using iTerm2 with zsh shell. Any ideas? – Flo Nov 27 '12 at 11:23
  • 1
    @Flo Try adding the lines bindkey -e, bindkey '^[[1;9C' forward-word and bindkey '^[[1;9D' backward-word to your ~/.zshrc instead. IIRC zsh won't read .inputrc – or at least it works for me this way. – slhck Nov 27 '12 at 11:49
  • 2
    Not working for me with ctrl-left/right + bash, but works fine if I set it up for alt-left/right. – Dalin Jan 18 '14 at 3:22
  • 4
    Added an edit about Mission Control shortcuts preventing any of this from working in the most aggravatingly opaque manner. Hopefully it saves someone from going through the same thing I just did urgh... – rubyruy Jan 22 '14 at 18:22
  • 12
    For OSX + zsh + iTerm2 + ctrl-left/right use the following: bindkey -e; bindkey '\e\e[C' forward-word; bindkey '\e\e[D' backward-word – Artur Bodera Apr 11 '14 at 9:30

Working solution for zsh. Simple, straightforward, out-of-the-box.

  1. Goto: ⌘, Preferences → Profiles → Keys → Keyboard Behavior

  2. Load Preset: Natural Text Editing

Load Preset "Natural Text Editing"

| improve this answer | |
  • 1
    Thanks @Happy Torturer, I believe it's best answer mostly because I don't have on plain Terminal.app that problem so I don't want to modify bash/zsh, just want to work everything like in Terminal.app. – galuszkak Sep 23 '17 at 17:07
  • 1
    This, this, this. Thank you so much for this solution! I've gone through this maddening process with each Mac I get. I now know the simplest way to make this happen. Thank you! – vernonk Nov 22 '17 at 4:55
  • This should be the accepted answer. I wonder, is there any way to load this preset from the command line rather than going through the settings GUI? – Casimir Dec 16 '19 at 9:20

I fixed it this way:

In top menu; go to

-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)
| improve this answer | |
  • 2
    all i have under that preset is "Factory Defaults" – MaylorTaylor Sep 10 '18 at 2:29

I used a different approach. Using BetterTouchTool I programmed a custom keyboard shortcut for iTerm2. When I press alt-left in iTerm2, it sends the keyboard shortcut ctrl-left with the action "Send keyboard shortcut to specific application". The application is iTerm2. I did the same for alt-right mapped to ctrl-right.

The effect is that pressing alt-left or alt-right in iTerm sends a ctrl-left or ctrl-right directly to iTerm2, bypassing the usual system-wide shortcut to move a desktop left or right. Like this I get the typical mac behaviour in iTerm2, on local terminal sessions, but also on remote SSH sessions and I can use the standard ctrl-left / ctrl-right to move to different desktops. I wrote it up here:


| improve this answer | |
  • 2
    BetterTouchTool is not open source and could very well be doing things you wish it wasn't. The guy says he's a student but he could just as well be a three letter agency. – revacuate Jan 4 '16 at 17:43

Actually, I found the easiest solution was to go to my profile settings (found in Profiles/Keys), removing the offending profile shortcuts(as profile overrides global in iTerm), in my case alt+left and alt+right and then the global shortcuts worked perfectly for me!

Also, if you're using OS X, it's probably best to stick with system wide shortcuts, i.e. using alt+left and alt+right instead for this purpose, having different behaviour in terminal is bound to cause a pain eventually.

Other than that chmac's solution to use Better Touch Tool was an elegant way to change control+arrow's behaviour in iterm only.

| improve this answer | |
  • actually this is the best solution. It is confusing as most of us go to Keys tab. Instead we have to go to Profiles tab -> A profile(eg default) -> keys. – Paschalis Nov 3 '15 at 17:26
  • This is definitely the safest and easiest solution. – revacuate Jan 4 '16 at 19:14

This post teaches this and others shortcuts as ⌥←Delete to delete a word:


| improve this answer | |
  • This doesn't actually answer the question, which is about using <ctrl><left> – DavidPostill Jun 2 '16 at 15:38
  • All you have to do is use the shortcut that fits your need. "<ctrl><left>" or whatever you want. – Seralto Jun 2 '16 at 16:05
  • 1
    So please quote the essential parts of the answer from the reference link(s), as the answer can become invalid if the linked page(s) change. – DavidPostill Jun 2 '16 at 16:12

You need to go into the Profiles tab and delete the mapping for alt+left and alt+right as by default it outputs some hex values.

| improve this answer | |
  • This did it for me! – Philip May 26 '16 at 17:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.