我正在尝试让Backspace键在我拥有的python脚本中工作。基本上,脚本中的代码如下所示:

print("Please type the character 'h':")
choice = raw_input()
if choice == 'h':
        print("Thanks.")
else:
        print("You input the wrong character.")

现在,显然,这是一个玩具脚本,但是我很难让raw_input()来完成我想要的事情。例如,如果我运行脚本,请键入a,然后意识到我键入了错误的字符,然后按退格键,我将得到:
Please type the character 'h':
a^H

但是,如果我改为键入^?,它将转换为正确的命令:
Please type the character 'h':
<<< CURSOR HERE

所以,我的问题是这样的:我认为这与我的linux环境有关-即我认为我需要加载一个键盘映射,该映射告诉Linux我想让它在按下Backspace键时输出^?,但我不知道为什么它似乎可以在所有其他程序中运行(令人惊讶的是,即使是python解释器,如果我手动将该代码放入python解释器,它也会按预期运行!)

最佳答案

您正在使用什么终端程序?它可能具有一个设置,可用于控制如何解释退格键。

在gnome-terminal中,如果您单击Edit>Profile Preferences>Compatibility
您可以告诉gnome-terminal在按下Backspace键时发送ASCII DEL而不是Ctrl-h。


否则,我认为您可以使用以下方法修复键盘映射

xmodmap -e "keycode 22 = BackSpace"

但是,我的内存使用rust 了。有关详细信息,请查阅HOWTO和/或this guide

10-08 16:12