# iTerm - going one word backwards and forwards

Would it be possible to configure iTerm 2 to go backwards and forwards one word through the curent text in the command line using a keyboard shortcut?

For new version of iterm 2 (3.4.4), I had to use the suggestion from https://coderwall.com/p/a8uxma/zsh-iterm2-osx-shortcuts. This work specifically for zsh

In zsh you can use ctrl + a/e to move to beginning/end of line and esc + W/B to move one word backward/forward, but that's not very handy.

Here is a solution to map ⌥ + ← / → and ⌘ + ← / → to work in iTerm2 as expected

bindkey "[D" backward-word
bindkey "[C" forward-word
bindkey "^[a" beginning-of-line
bindkey "^[e" end-of-line


Answered by esdee on November 11, 2021

In build 3.3.12, you can select the Natural text editing preset and it will add all the necessary escapes to make it feel like you're navigating text in any other app.

Answered by Clement on November 11, 2021

Open Preferences

Configure Left (and / or) Right Option key to send Esc+

If you messed with your presets, you may need to load the default preset (beware this could wipe your custom keybinds!)

If you see weird characters after you do this you may need to configure your ~/.inputrc or /etc/inputrc

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


full example inputrc:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs # allow the use of the Home/End keys "e[1~": beginning-of-line "e[4~": end-of-line # allow the use of the Delete/Insert keys "e[3~": delete-char "e[2~": quoted-insert # mappings for "page up" and "page down" to step to the beginning/end # of the history # "e[5~": beginning-of-history # "e[6~": end-of-history # alternate mappings for "page up" and "page down" to search the history # "e[5~": history-search-backward # "e[6~": history-search-forward # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving "e[1;5C": forward-word "e[1;5D": backward-word "e[5C": forward-word "e[5D": backward-word "ee[C": forward-word "ee[D": backward-word$if term=rxvt
"e[7~": beginning-of-line
"e[8~": end-of-line
"eOc": forward-word
"eOd": backward-word
$endif # for non RH/Debian xterm, can't hurt for RH/Debian xterm # "eOH": beginning-of-line # "eOF": end-of-line # for freebsd console # "e[H": beginning-of-line # "e[F": end-of-line$endif


Answered by yosefrow on November 11, 2021

With iTerm2 3.1.4, I was able to setup the following without adding individual key mappings.

1. Go to Preferences > Profiles > Keys
2. Left/Right ⌥ Key: Select Esc+

With a new Terminal session you are now able to use:

Option ⌥ + f to Get Forward

Option ⌥ + b to Get Forward

Option ⌥ + Delete ⌫ to Delete Word

Answered by Fate.AKong on November 11, 2021

You can set your terminal in vi mode with set -o vi to be able to use the usual vi motion commands (add the line in .bash_profile to store the setting permanently.)

So, as if in vi, you can hit Esc, then b to move one word backward (w for forward), go to the beginning of the line with 0, or search a character backward with F + the char.

Hit i to go back to Normal mode and insert.

Those familiar with vi can do much more. A cheat sheet can be found here.

Answered by sebnukem on November 11, 2021

Killing a fly with a cannon:

• Go to Preferences... > Profiles > Keys (not Preferences... > Keys)
• Press Presets... (under Key Mappings)
• Select Natural Text Editing

Then, you can move a word backwards using Option ⌥ + and a word forwards using Option ⌥ + , move to the start of the line using fn + and to the end of the line with fn + . Also you can delete a word backwards using Option ⌥ + , delete the whole line using Command ⌘ + .

If the preset doesn't appear, reinstall iTerm2. If you installed it using Homebrew+Cask:

brew cask reinstall iterm2


Answered by Ricardo Stuven on November 11, 2021

Similar to other answers, but for Zsh it took me a while to find this:

If you are using Zsh, like Oh My Zsh, in iTerm then go to: Preferences > Profiles > Keys sub-menu

Click + sign

inputs for left and right below.

left:

[1;5D


right:

[1;5C


Answered by bdanin on November 11, 2021

I like the following setup.

1. Preferences > Keys (or Preferences > Profiles > Keys)
2. Click the plus.

move forward one word

option+right
send escape sequence
f


move back one word

option+left
send escape sequence
b


delete to beginning of word (credit)

option+delete
send hex code
0x1B 0x08


delete to end of word

fn+option+delete
send escape sequence
d


(I don't remember for sure, but I think I copied this answer from jherran's answer below and added more to it. I should have added the extra information in comments or suggested edits on that answer. I don't know how to improve the situation, but now it's known.)

Answered by David Winiecki on November 11, 2021

## To Get Forward (Alt-f), Backward (Alt-b) and Delete (Alt-d) Word

1. Open iTerm.
2. Go to iTerm > Preferences... > Profiles > Keys
3. Under Profile Shortcut Keys, click the + sign.
4. Type your key shortcut (option-b, option-f, option-d, option-left, etc.)
5. For Action, choose Send Escape Sequence.
6. Write b, d or f in the input field.

This works at least for bash. For zsh there are other ways to navigate.

Answered by jherran on November 11, 2021

Ctrl-[ b jumps back a word. You can also use Esc instead or Ctrl-[, and f to go forward.

That is Ctrl+[ release and then b orf. Or Esc and b or f`.

Answered by Volsk on November 11, 2021

## Related Questions

### How do I enable AVB on Mac catalina 10.15

1  Asked on August 8, 2020 by user3810484

### Catalina > Mojave on old MacBook Pro

0  Asked on August 5, 2020 by ron

### Update Container on macOS

0  Asked on August 1, 2020 by lupurus

### Using Partitioned External Harddrive with Bootcamp

1  Asked on July 28, 2020 by lionmac