![终端中的删除键不起作用](https://linux22.com/image/1015659/%E7%BB%88%E7%AB%AF%E4%B8%AD%E7%9A%84%E5%88%A0%E9%99%A4%E9%94%AE%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
按下Delete终端中的键不会删除转发。它做在编辑器和浏览器中工作,只有终端似乎有这个问题。Ctrl+D仍然可以用作删除键。
我按照另一篇文章运行了这些:
$ xmodmap -pke | grep -i delete
keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
keycode 119 = Delete NoSymbol Delete
$ sudo dumpkeys | grep -i remove
keycode 111 = Remove
string Remove = "\033[3~"
我不确定这意味着什么。
我从这里可以去哪里?
使用 Ubuntu 18.04.3 LTS 和默认终端
答案1
遵循此常见问题解答中的详细信息https://git.suckless.org/st/file/FAQ.html#l25我复制了 inputrccp /etc/inputrc ~/.inputrc
并set enable-keypad on
在那里取消注释。
从链接中提取
## Why doesn't the Del key work in some programs?
Taken from the terminfo manpage:
If the terminal has a keypad that transmits codes when the keys
are pressed, this information can be given. Note that it is not
possible to handle terminals where the keypad only works in
local (this applies, for example, to the unshifted HP 2621 keys).
If the keypad can be set to transmit or not transmit, give these
codes as smkx and rmkx. Otherwise the keypad is assumed to
always transmit.
In the st case smkx=E[?1hE= and rmkx=E[?1lE>, so it is mandatory that
applications which want to test against keypad keys send these
sequences.
But buggy applications (like bash and irssi, for example) don't do this. A fast
solution for them is to use the following command:
$ printf '\033[?1h\033=' >/dev/tty
or
$ tput smkx
In the case of bash, readline is used. Readline has a different note in its
manpage about this issue:
enable-keypad (Off)
When set to On, readline will try to enable the
application keypad when it is called. Some systems
need this to enable arrow keys.
Adding this option to your .inputrc will fix the keypad problem for all
applications using readline.