我正在使用 GNOME 终端 2.7.3 和 zsh 4.3.9 (x86_64-unknown-linux-gnu)
Home
并且End
不工作。当我按下它们时,没有任何反应,也没有任何显示。但当我按下shift + Home
(滚动到 shell 输出的开头。) 时它们就可以工作,并且也可以在其他 GUI 程序中工作。我用谷歌搜索并尝试了以下方法。不用找了 :(
885 bindkey "\e[1~" beginning-of-line
886 bindkey "\e[H" beginning-of-line
887 bindkey "\e1~" beginning-of-line
888 bindkey "\eH" beginning-of-line
889 bindkey "\e[0H" beginning-of-line
PS:当我处于最后一个选项卡并按下时,Ctrl + pagedown
我会;5~
打印在屏幕上。这能提供任何线索吗?
答案1
由功能键和光标键发送的转义序列由转义字符和后跟可打印字符组成。按Ctrl+V然后Home。这将按字面意思插入转义序列。然后将bindkey
指令添加到您的~/.zshrc
.
该指令可能是(注意O
,而不是0
):
bindkey '\e[OH' beginning-of-line
bindkey '\e[OF' end-of-line
答案2
我发现我必须按下CTRL-v
,松开,然后按下Home
或End
键才能分别获得序列^[[H
和^[[F
forHome
和End
。将以下行添加到.zshrc
文件中解决了我的问题:
bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
答案3
将这些行添加到/etc/zshrc
然后执行source /etc/zshrc
(取自这里)
bindkey '\e[1~' beginning-of-line # Linux console
bindkey '\e[H' beginning-of-line # xterm
bindkey '\eOH' beginning-of-line # gnome-terminal
bindkey '\e[2~' overwrite-mode # Linux console, xterm, gnome-terminal
bindkey '\e[3~' delete-char # Linux console, xterm, gnome-terminal
bindkey '\e[4~' end-of-line # Linux console
bindkey '\e[F' end-of-line # xterm
bindkey '\eOF' end-of-line # gnome-terminal
答案4
这个答案很好地解释了我的问题并解决了它。
https://stackoverflow.com/a/686458/5472892
长话短说:将 PuTTY 终端类型从默认更改xterm
为linux
.
也许有人也可以使用它。