439

Is it possible to move between words in iTerm using Alt + Right/Left Arrows ? Now if I press Alt+Left I will get '[D' and '[C' if I press Alt+Right.

1
  • 2
    Just adding a note for those that simply want to know if its possible to do this with some hotkeys, there is a way. If you want to map it, that's fine but in terminal, CTRL+A will go to the beginning of a line and and CTRL+E to the end. Option+Left to go the beginning of a word and then Option+right to end of a word.
    – aug
    Commented Jul 23, 2019 at 20:10

9 Answers 9

688
  • Go to iTerm Preferences → Profiles
  • select your profile
  • then the Keys tab with its sub-tab Key Mappings
  • Click Load Preset...
  • and choose Natural Text Editing

20
  • 9
    In December 2018 on Mojave, the opt key is what moves between words after choosing natural text editing.
    – Rob Dawson
    Commented Dec 16, 2018 at 21:15
  • 11
    I've been suffering for months without this but today you're my saviour.
    – remykarem
    Commented Mar 15, 2019 at 3:00
  • 40
    Note that this is Preferences > Profiles > Keys > Load Presets not Preferences > Keys > Load Preferences
    – kevin
    Commented Apr 26, 2019 at 2:42
  • 16
    I LOVE YOU !! it annoyed me for weeks Commented Nov 12, 2019 at 17:08
  • 6
    As for today, it is actually Profiles > Keys > Keys Mappings > Presets > Natural Text Editing. Commented Dec 28, 2021 at 15:38
195

Go to iTerm Preferences → Profiles, select your profile, then the Keys tab. Find ⌥← and ⌥→ and set them to send escape sequence b and send escape sequence f respectively.

Mapping alt-right to move cursor forward by one word

If you use ⌘→ and ←⌘ you will need to remap the next and previous tab shortcuts which are set to those as default. Terminal uses ⇧⌘→ and ⇧⌘← for these.

You can do this under Profiles, or just globally under Keys (shown below) if you wish to set it globally. Note that settings in Profiles override global settings in Keys.

Globally mapping alt-right to move cursor forward by one word

0
32

If you use bash, you can also add

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

to ~/.inputrc.

3
  • 1
    This worked best for me. Trying to set it up in iTerm2 only generated [D or [C each time I tried to use the new button action. Thank you.
    – dmgig
    Commented Jul 13, 2016 at 17:35
  • As far as I can tell there's nothing you can do in iTerm2 v3.0.10. It has to be this bash setup.
    – fiorix
    Commented Oct 3, 2016 at 16:32
  • 1
    Not sure about iTerm2 v3.0.10, but iTerm2 v3.0.14 definitely works with the Natural Text Editing solution so you don't need to resort to bash input configuration.
    – dwanderson
    Commented Feb 16, 2017 at 18:45
18

For zsh I inserted in ~/.zshrc

bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word

for bash I inserted in ~/.inputrc

"\e\e[D": backward-word
"\e\e[C": forward-word
1
  • Definitely was the easiest solution for me with more than one iterm profile
    – element11
    Commented Apr 15 at 13:48
13

If you're coming here recently because the preset is no long available under Preferences > Keys > Presets..., the presets had change place. Now, if you want to find one of the default presets (Natural Text Editing included), you may want to go over: Preferences > Profiles > [choose your starred profile] > Keys > Key Mappings > Presets...

On a default setting, that is the area you want to get into:

key mappings under profile

enter image description here

I was looking like crazy on how to download it, I even found buried inside the .app Resources folder a .plist with this mappings in, so I knew I would find this.

Hope that helps anyone in the future looking forward into this.

0
12
  1. Go to: Preferences > Profiles > Keys

  2. Look for the actions of ⌥← and ⌥→. They would have been mapped to: Send Hex codes

  3. Change them to Send Escape sequence with Esc+B for backward and Esc+F for forward.

0
4

Late in the game but for the visual:

enter image description here

Namely, see the Esc+ is selected.

2

CMD+Delete -- Send Hex Code -- 0x15

To delete the whole line (similar to Option+U)

2

Very edge case scenario, but for me it was an issue in my own dotfiles.

These two lines caused it:

In bash_options

set-o vi

In inputrc

set editing-mode vi

After commenting those two lines out, iTerm2 Natural Text Editing works as expected.

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