bal*_*lki 15 command-line keyboard-shortcuts zsh gnome-terminal
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
PS:当我在最后一个选项卡中按下时,Ctrl + pagedown我会;5~在屏幕上打印出来。这是否提供任何线索?
功能键和光标键发送的转义序列由转义字符和可打印字符组成。按Ctrl+V然后Home。这将从字面上插入转义序列。然后bindkey向您的~/.zshrc.
指令很可能是(注意O,不是0):
bindkey '\e[OH' beginning-of-line
bindkey '\e[OF' end-of-line
Run Code Online (Sandbox Code Playgroud)
小智 7
添加这些行/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
Run Code Online (Sandbox Code Playgroud)
小智 6
我发现我必须按CTRL-v,放手,然后按HomeorEnd键才能分别获得序列^[[H和^[[FforHome和End。将以下行添加到.zshrc文件中为我解决了这个问题:
bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
Run Code Online (Sandbox Code Playgroud)
小智 6
我现在在 Fedora 上,但我建议您仔细阅读 Archlinux 的 wiki ,所有内容:Home 和 End 键不起作用。
我做了什么来修复它:
按 Ctrl-V Home,打印 Home 键的转义序列。它不是 \e[4~,\e[1~正如我所期望的那样/etc/inputrc。这是[H和[F
提取终端信息 infocmp $TERM >terminfo.src
打开文件进行编辑,例如vim terminfo.src,寻找khome和kend它分配给的东西,比方说khome=\E[1~和kend=\E[4~它是不是在这种情况下工作。删除它并用您在第 1 步中找到的序列替换它,所以对我来说,编辑后它是:khome=\E[H和kend=\E[F.
如果您想安全播放,请确保[F和[H(或您刚刚使用的任何序列)没有分配给其他东西,否则事情会被搞砸!
运行tic terminfo.src它创建~/.terminfo目录。
在.zshrc任何和所有其他命令之前,放置:export TERMINFO=~/.terminfo
打开一个新的终端窗口,你应该没问题,home 和 end 现在必须工作。
PS:bindkey 方法理论上应该可以工作并且更容易,但对我来说却不是。
这个答案很好地解释了我的问题并解决了它。
TL;DR:将 PuTTY 终端类型从默认更改xterm为linux.
也许有人也可以使用它。
| 归档时间: |
|
| 查看次数: |
17117 次 |
| 最近记录: |