在zsh中寻找ALT + LeftArrowKey解决scheme

我只是最近从bash切换到zsh,但是我想念我的Alt + LeftArrowKeyAlt + RightArrowKey来一次来回。

现在,如果按下Alt + LeftArrowKey,我会返回几个字母,然后卡住。 我不会再向后走,并且不会像我所期望的那样回到Alt + RightArrowKey的末尾。 我什至不能使用箭头键去行的末尾,只能倒数第二。 无法input新的字符,或者确实删除。

我如何得到我心爱的快捷方式?

如果这很重要,我使用terminal在Mac OS X上。

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

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

(其实我更喜欢用Ctrl +箭头来逐字移动,就像在windows或linux下的普通文本框一样)。

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

在OSX Mountain Lion上为〜/ .zshrc添加以下内容。

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

对于任何使用iTerm的人,不pipeshell

在这里提供的所有解决scheme在我看来都是倒退的。 你实际上是在告诉你的shell监听你在terminal中设置的一些esc序列或者其他的键绑定,当你切换shell的时候会产生兼容性问题(如果你SSH进入其他shell,从BASH切换到ZSH等,一些,如果不是全部你的键盘)。

大多数shell有一组默认序列来预先绑定。 而且,尽pipe它们不是100%一致的,但它们已经足够接近了。 因此,我发现为shell中的特定操作创build键绑定的最简单方法是告诉您的terminal应用程序绑定到跨shell的默认键绑定。

我写了一个压缩解决scheme让你的terminal在这里接近原生的mac keybindings

打开iTerm首选项 + 然后导航到“ Profiles选项卡(可以使用“ Keys选项卡,但向configuration文件添加Keys绑定允许您保存configuration文件并将其同步到多台计算机)和keys子选项卡并input以下内容:

将光标左移一个字

+ 发送hex代码: 0x1b 0x62

向右移动光标一个字

+ 发送hex码: 0x1b 0x66

这应该给你所需的行为,不仅在ZSH,而且如果你SSH到运行BASH,irb / pry,节点等服务器。

虽然不是严格回答你的问题,但是forward-wordbackward-word的缺省绑定是alt-f resp。 alt-b

这个方法无处不在,不需要你离开home行,并且有一个很好的助记符属性(f = forward,b = back),同时也和ctrl-fctrl-bforward-characterbackward-character

撕开你的箭头键!

在小牛(10.9.4)的代码是1; 5 …所以用箭头绑定alt我有我的.zshrc使用这个:

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

您可以使用CTRL + V,然后使用您要使用的命令

在优胜美地使用Rob的解决scheme