我正在尝试让退格键在我拥有的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我希望它在命中退格键时输出^?
,但我不知道为什么它似乎适用于所有其他程序(甚至python解释器,令人惊讶的是 - 如果我手动将该代码放入python解释器,它按预期工作!)
答案 0 :(得分:2)
您使用的终端程序是什么?它可能有一个设置,您可以使用该设置控制退格键的解释方式。
在gnome-terminal中,如果点击Edit>Profile Preferences>Compatibility
,
你可以告诉gnome-terminal在按下退格键时发送ASCII DEL
而不是Ctrl-h。
否则,我认为你可以用
之类的东西来修复你的键盘映射xmodmap -e "keycode 22 = BackSpace"
然而,我的记忆生疏了。有关详细信息,请参阅HOWTO和/或this guide。