In zshell how to move forward word, I can set -o vi and use vi format. Is there a way to move forward in zshell by a word
The ZLE widget for moving forward by one word is forward-word
. Therefore, you may use bindkey
to bind this widget to any key you want.
For example,
$> bindkey ^O forward-word
would allow you to move forward by one word when pressing Ctrl-O
. Note that ^O
is actually a quoted insert of Control followed by O
.
If you're using iTerm2 on OSX, you can use the Natural Text Editing preset under Preferences -> Profile -> Keys.
This supports these key combos (which are very similar to other editors):
- alt/option + left = move left one word
- alt/option + right = move right one word
Natural Text Editing
presets –
Repression The ZLE widget for moving forward by one word is forward-word
. Therefore, you may use bindkey
to bind this widget to any key you want.
For example,
$> bindkey ^O forward-word
would allow you to move forward by one word when pressing Ctrl-O
. Note that ^O
is actually a quoted insert of Control followed by O
.
Your zsh command prompt works either like emacs or like vi. If it works like vi, put it in command mode (esc
) and type w
. If it works like emacs, use M-f
.
More information available at man zshzle.
w
and emacs mode M-f
. –
Camper M
and press f
or b
repeatedly to move multiple words at a time, which to me is one of the main points of wanting to skip by words. –
Carloscarlota Similar to other answers, but for Zsh on iTerm 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
Add your shortcut combo, choose "Send Escape Sequence"
inputs for left and right below.
left:
[1;5D
right:
[1;5C
[1;5D
", the iTerm2 prefs dialog displays it as "^[ [1;5D
". Should I actually be defining it as "1;5D
", so that it displays as "^[ 1;5D
"? Neither works for me though. –
Francophobe - forward word [Meta]+[f]
- backward word [Meta]+[b]
On macOS, [option]+[→] and [option]+[←] work too.
In my zsh terminal it was already set to the below using bindkey
"^[f" forward-word
"^[b" backward-word
I was not sure how to use this, read on Apple Forum's, this is basically
^+[
release it then press f
or press esc
release it then press f
Similarly for backward,
^+[
release it then press b
or press esc
release it then press b
For me, nothing was working until I found out that having $EDITOR=vim
makes your zsh start in vi mode automatically, which replaces these keybindings. The solution for me was to change my $EDITOR
variable.
© 2022 - 2024 — McMap. All rights reserved.