58

我正在运行 Ubuntu 11.04。我安装了Terminator Terminal Emulator 0.95 和 Zsh,版本 4.3.15。
我在 Zsh 中的密钥存在(众所周知)问题。至少这些:

  • Home/End,什么都没有发生
  • 插入/删除/PageUp/PageDown:键入“~”

我已经尝试了一些 .zshrc 的配置来解决这个问题,但到目前为止还没有一种方法真正奏效。也许这与终结者和Zsh的结合有关。我在此页面上使用了 2 个配置:https ://bbs.archlinux.org/viewtopic.php?pid=428669 。

是否有人有类似的配置(尤其是 Terminator 和 Zsh)并弄清楚需要将什么插入 .zshrc 以修复关键设置?

4

4 回答 4

151

要知道某个键的代码,请执行cat,按回车键,按该键,然后按 Ctrl+C。

对我来说,Home发送^[[HEnd ^[[F,所以我可以把我.zshrc放在我的家庭目录中

bindkey  "^[[H"   beginning-of-line
bindkey  "^[[F"   end-of-line
bindkey  "^[[3~"  delete-char

这些代码可能会随着您使用的终端仿真器而改变。

autoload zkbd ; zkbd将创建一个包含要使用的键码数组的文件,例如bindkey "${key[Home]}" beginning-of-line,并且您可以根据终端获取不同的文件。

于 2011-12-27T13:39:39.573 回答
31

感谢@lolesque,但该解决方案不适用于我。在使用zkbd检查我的键绑定后,我得出了以下解决方案。顺便说一句,我$TERM的是xterm

bindkey  "^[[1~"   beginning-of-line
bindkey  "^[[4~"   end-of-line

希望能帮助到你。

于 2015-10-10T02:04:22.603 回答
2

对我来说,在 WSL2(Windows 10)上就是这样

bindkey "^[OH" beginning-of-line
bindkey "^[OF" end-of-line

这个cat技巧对我不起作用,因为它在接受的答案中打印,但我能够通过输入运行 zsh 的新窗口终端^[[H来找出^[OH序列。Ctrl+v Home

于 2019-12-13T17:07:02.920 回答
0

在 .zshrc 中设置 TERM 变量对我来说是这样的。

于 2020-06-29T20:23:51.827 回答