单击时波浪号钥匙

单击时波浪号钥匙

我正在使用 XFCE 终端模拟器 0.4.8。

我的 ~/.inputrc 文件:

# Insert Key
"\e[2~": paste-from-clipboard
"\C-v": paste-from-clipboard
"\e[A":history-search-backward
"\e[B":history-search-forward
"\M-[3~": delete-char

当我单击时,<Del>会打印波形符,而不是删除下一个字符。当我删除 .inputrc 文件时,它开始正常工作。谷歌搜索显示,这一行:

"\M-[3~": delete-char

已经帮助人们治愈了这个问题。但不是我。我将这一行插入到 .inputrc 中,甚至删除了所有其他行。不起作用。

怎么修?

答案1

线路

"\M-[3~": delete-char

是不正确的,因为它告诉 bash 寻找的字符[,(根据 bash)可以是后跟 的转义字符[,也可以是[与 0x80 进行“或”运算形成的字符,即 0xdb,即Û

实际的键将仅使用转义字符,因此您应该使用此设置:

"\e[3~": delete-char

答案2

虽然问题已经得到解答,但我想(对其他人)提一下,这取决于您的 shell,因为我也遇到了同样的问题,但使用的是 zsh。问题是 zsh 不使用 readline,因此不读取 inputrc。相反,他们实现了 zsh 行编辑器 (zle)。

我找到的解决方案是在 zshrc 中显式设置键绑定(因此对于 zle 而不是 readline)arch wiki 中有描述

# create a zkbd compatible hash;
typeset -g -A key
key[Delete]="${terminfo[kdch1]}"

# setup key accordingly
[[ -n "${key[Delete]}"    ]] && bindkey -- "${key[Delete]}"     delete-char

相关内容