3

私が持っている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 インタープリターに入れると、期待どおりに動作します!)

4

1 に答える 1

2

どの端末プログラムを使用していますか? バックスペースキーの解釈方法を制御できる設定がある場合があります。

gnome-terminal で をクリックすると、バックスペース キーが押されたときに Ctrl-h の代わりに Edit>Profile Preferences>Compatibility送信するように gnome-terminal に指示できます。ASCII DELここに画像の説明を入力


それ以外の場合は、次のような方法でキーマップを修正できると思います

xmodmap -e "keycode 22 = BackSpace"

しかし、私の記憶は錆びています。詳細については、HOWTOおよび/またはこのガイドを参照してください。

于 2012-01-22T02:03:41.190 に答える