Home 键在终端中不起作用

Home 键在终端中不起作用

我正在使用 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,松开,然后按下HomeEnd键才能分别获得序列^[[H^[[FforHomeEnd。将以下行添加到.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 终端类型从默认更改xtermlinux.

也许有人也可以使用它。

相关内容