我最近刚刚从bash切换到zsh,但我错过了我的Alt+LeftArrowKey和Alt+RightArrowKey来回一次一个字。

现在,如果我按Alt+LeftArrowKey,我就会返回几个字母,然后就卡住了。我不会再往前走了,它不会像我期望的那样,用Alt+RightArrowKey回到行尾。我甚至不能用方向键到行末,只能到倒数第二。不能在行上输入新的字符,也不能删除。

我如何找回我心爱的捷径?

我在Mac OS X上使用终端,如果这很重要的话。


当前回答

在MacOS High Siera 10.13.6或Mojave 10.14.2上使用iTerm2和ZSH 为了摆脱文字,我不得不这样写:

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

另一个解决办法对我不起作用

其他回答

在MacOS High Siera 10.13.6或Mojave 10.14.2上使用iTerm2和ZSH 为了摆脱文字,我不得不这样写:

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

另一个解决办法对我不起作用

这些键绑定与Arch Linux上的Alacritty一起工作,只需将它们添加到~/。zshrc中

bindkey -e

bindkey "^[[3~" delete-char                     # Key Del
bindkey "^[[5~" beginning-of-buffer-or-history  # Key Page Up
bindkey "^[[6~" end-of-buffer-or-history        # Key Page Down
bindkey "^[[H" beginning-of-line                # Key Home
bindkey "^[[F" end-of-line                      # Key End
bindkey "^[[1;3C" forward-word                  # Key Alt + Right
bindkey "^[[1;3D" backward-word                 # Key Alt + Left

运行cat,然后按键查看快捷方式发送的代码。 (完成后按Ctrl+C杀死猫) 对我来说,(ubuntu, konsole, xterm)按Alt+←会发送^[[1;3D,所以我会输入我的.zshrc

bindkey "^[[1;3C" forward-word
bindkey "^[[1;3D" backward-word

(实际上我更喜欢使用Ctrl +箭头来逐字移动,就像在windows或linux gui下的正常文本框中一样。)

相关问题:修复在终结者终端仿真器中运行Zsh时.zshrc中的键设置(Home/End/Insert/Delete)

将以下内容添加到~/。zshrc为我在OSX Mountain Lion工作过。

bindkey -e
bindkey '[C' forward-word
bindkey '[D' backward-word

在zsh中,可以使用bindkey命令查看键盘快捷键。

使用bindkey来探索无需自定义键绑定即可使用的选项。

即^[b向后移动一个单词,^[f向前移动一个单词。