2017-07-06 2 views
0

私はncursesプログラムを作成していますが、KEY_BACKSPACEを検出する必要があります。私は2 Linuxディストリビューションの下でプログラムをテストしています。ncursesでKEY_BACKSPACEを検出しました

suseの下では、正常に実行されます。しかし、archlinuxでは、KEY_BACKSPACE263ですが、私がプログラムから印刷したものは127です。

suseの場合は、両方とも263です。

私はint ch = wgetch(somw_window)を使用してキーを取得しています。

答えて

0

それが依存:BackspaceキーをASCII BS(8)またはASCII DEL(127)を送信するかどうかは、xtermのような多くの端末エミュレータと構成可能です。端末の説明(環境変数TERMで選択)は端末の設定と一致する必要があります。そうしないとcursesはキーボードが実際に送信するものとバックスペースキーが一致すると表示しません。 8/127値。

端末によっては、どちらか一方のみが送信されます(ただし、ほとんどのハードコーディングされたものはASCII DELを使用します)。

さらに読み(のxterm FAQ):

+0

トーマス、どうもありがとうございました!私はさらに2つの質問があります。私はputtyとtmuxを使用しています。 'TERM'は' screen-256color'であり、 'putty-Terminal-Keyboard 'の設定は同じです。設定する方法は何ですか?あなたの投稿から、この矛盾を 'curses'が負うことはありませんか? – delta

+0

が同意します:cursesは責任を負いませんが、通常設定可能です。 tmuxの複雑なことの1つは、着信文字を端末の説明にマップしようとすることです。たとえば端末が実際に 'kbs = ^? 'である' kbs =^H'がある端末の記述を見ることができます。 –

+0

端末の '^ H'、' ^? 'の違いをチェックする方法は?私のパテconfigは '^? 'です。 – delta

関連する問題