我无法让 Home 和 End 键在 Cygwin 下为 zsh 工作。各种来源似乎表明
bindkey '\e[1~' beginning-of-line
bindkey '\e[4~' end-of-line
可以解决问题,但对我不起作用。奇怪的是,在我输入
bindkey "\e[3~" delete-char
删除按钮开始工作(在此之前它只是输出~)。
有人知道发生了什么事吗?
我使用的是 Windows XP 并且正在使用最新版本的 Cygwin 包。
更新:这似乎是 mintty 的问题,如果我运行 cygwin.bat 启动 Windows 命令提示符,则一切正常。也许它与这个错误?
答案1
在 mintty 邮件列表的帮助下 (https://groups.google.com/forum/?fromgroups#!topic/mintty-discuss/v4b86DBNI80)我找到了答案。我需要添加到 .zshrc 的行是
bindkey '\e[H' beginning-of-line
bindkey '\e[F' end-of-line
答案2
这里是我的附加有用绑定的完整列表(已更正以从命令中删除冒号)。
# ctrl-left/right
bindkey "\e[1;5C" forward-word
bindkey "\e[1;5D" backward-word
# ctrl-backspace/delete
bindkey "\C-_" backward-kill-word
bindkey "\e[3;5~" kill-word
# alt-backspace
bindkey "\e\d" undo
bindkey "\e[3~" delete-char
bindkey '\e[H' beginning-of-line
bindkey '\e[F' end-of-line