Cygwin + zsh:Home 和 End 键不起作用

mav*_*ato 8 windows cygwin zsh mintty

在 Cygwin 下,我无法让 Home 和 End 键为 zsh 工作。各种消息来源似乎表明

bindkey '\e[1~' beginning-of-line
bindkey '\e[4~' end-of-line
Run Code Online (Sandbox Code Playgroud)

将解决问题,但这对我不起作用。奇怪的是,我进入后

bindkey "\e[3~" delete-char
Run Code Online (Sandbox Code Playgroud)

删除按钮开始工作(在此之前它只输出 ~)。

有谁知道发生了什么?

我使用的是 Windows XP,并且使用的是最新版本的可用 Cygwin 软件包。

更新:这似乎是 mintty 的问题,如果我运行 cygwin.bat 来启动 Windows 命令提示符,那么一切正常。也许它与这个错误有关

mav*_*ato 11

在 mintty 邮件列表 ( https://groups.google.com/forum/?fromgroups#!topic/mintty-discuss/v4b86DBNI80 )的帮助下,我找到了答案。我需要添加到 .zshrc 的行是

bindkey '\e[H' beginning-of-line
bindkey '\e[F' end-of-line 
Run Code Online (Sandbox Code Playgroud)


jan*_*jan 5

这是我的其他有用绑定的完整列表(已更正以从命令中删除冒号)。

# 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
Run Code Online (Sandbox Code Playgroud)