Answers:
我在这里找到了解决方案:https : //coderwall.com/p/h6yfda。如果链接断开,将复制其中最重要的部分。
您正在寻找关键字backward-word
和forward-word
。因此,如果您在键绑定不起作用的外壳上,请尝试bindkey -L | grep backward-word
检查它们是否已配置。在zshzle(1)中有关于此的更多信息。
您可以通过键入以下内容来手动设置按键绑定:
bindkey' Ctrl+ v Alt+ Right'前向字
bindkey' Ctrl+ v Alt+ Left'向后单词
我在键绑定方面也遇到了麻烦,问题几乎总是因为Option / Alt键发送的内容与预期的Meta / Escape不同。
emacs-forward-word
和emacs-backward-word
。不同之处在于,您跳到单词的末尾,然后跳到单词的开头,而不是总是跳到单词的开头。
我不能代表iTerm,但是这些是我用来解决此问题的键绑定,该键绑定是在Fedora 19上的GNOME终端下运行的,该版本使用Oh-my-zsh运行ZSH 5.0.7:
bindkey "\e[1;3C" forward-word
bindkey "\e[1;3D" backward-word
其中\e
==转义键序列(如第4.1.1节所述)
和[
== O
(大写O;如第4.2.1节所述),在某些情况下。例如,在tmux
我看来,这种替换是必要的,但是如果不需要tmux
,则不需要进行替换,并且[
==[
可以使用cat
并按下所需的序列来获取序列的键控代码。例如,按下结果<Alt+Right>
应解释为:
$ cat
^[[1;3C
^[
== \e
==转义键序列
[
== [
不带tmux
或
[
== O
(大写o)带tmux
1;3
==我不确定这一点,但从逻辑上讲应该 <Alt>
C
==右箭头键
然后将此序列作为第一个参数bindkey
在~/.zshrc
文件中提供给持久性,并进行绑定,这意味着参数一个中的击键将对窗口小部件执行特定的编辑器命令(或以zsh术语表示的窗口小部件)。以上示例的行是forward-word
。
~/.zshrc
在将这两个命令附加到以下命令后,应该重新获得:
$ source ~/.zshrc
现在,我系统上的一个烦恼是,这种特殊的组合导致终端仿真器每次发出命令时都会发出蜂鸣声,为此我通过禁用了
'Edit'->'Profile Preferences'->'Terminal Bell'
复选框。
使我更直观地了解iTerm2的命令行导航(我是一个年轻的成年人,没有在命令行上长大,但是我在文本编辑器和IDE上花费了很多时间)对我来说最有效至:
Natural Text Editing
在“预设”下拉列表中选择选项。这使编辑器的键默认为更标准的排列方式,而无需我单独修改每个选项。
FOO=BAR
zsh是1个字,bash是2个字。同样,如果将光标设置在的末尾foo --bar
并执行alt + backspace,则在bash中将具有foo --
,在zsh中将具有foo
。Zsh为bash添加了很多功能,但是它也有很多疯狂的默认值可以覆盖。