我正在尝试让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。