2

入力をリアルタイムで追跡するアプリケーションで readline を使用しています。ユーザーが Enter、Control + J、またはその他の同等のキーを押すことを許可したくないため、意図せずにフィールドをクリアします。

私は実際に自分でキーを転送しているので、特定のキー入力をキャッチして防ぐことができますが、逆検索 (Control - R) も処理する必要があるため、これは方法ではないと思います。

私はgnuのドキュメントを見てきましたが、役に立つものは何も見つかりませんでした.

私のコードはこれに似ています https://github.com/ulfalizer/readline-and-ncurses

4

1 に答える 1

1

libreadline の初期化ファイルでキーバインディングを構成するこのキーを禁止できます。

  1. ~/.inputrc現在のユーザー用に設定します
  2. すべての/etc/inputrcユーザーに対して構成します。

Enterとを禁止するControl+Jには、初期化ファイルに次のように追加できます。

リターン:
CJ:

必要に応じて、コードに追加してrl_unbind_keyを使用してプログラムでこれを行うことができます。

rl_unbind_key('\r'); // unbind Enter
rl_unbind_key('\n'); // unbind Control+J
于 2016-09-22T13:55:19.477 に答える