Python は、その readline バインディングを介して、優れたコマンドライン オートコンプリートを可能にします (ここで説明されているように)。
しかし、補完は文字列の先頭でしか機能しないようです。文字列の途中または最後に一致させたい場合、readline は機能しません。
コマンドライン python プログラムで、使用可能な文字列のリスト内の文字列のいずれかと入力内容を照合することにより、文字列をオートコンプリートしたいと考えています。
- 私が望んでいるオートコンプリートのタイプの良い例は、To フィールドに入力したときに GMail で発生するタイプです。連絡先の姓の 1 つを入力すると、名前を入力した場合と同じように表示されます。
- 上矢印と下矢印を使用するか、一致した文字列から選択する他の方法が必要になる場合があり (readline の場合は必要ありません)、私の場合は問題ありません。
- 私の特定の使用例は、メールを送信するコマンドライン プログラムです。
- 具体的なコード例は非常に役立ちます。
curses のような端末エミュレーターを使用しても問題ありません。Mac や Windows ではなく、Linux でのみ実行する必要があります。
以下に例を示します。リストに次の 3 つの文字列があるとします。
['Paul Eden <paul@domain.com>',
'Eden Jones <ejones@domain.com>',
'Somebody Else <somebody@domain.com>']
「Eden」と入力した後、リストの最初の 2 つの項目をオートコンプリートし、そのうちの 1 つを選択できるようにするコードが必要です (すべてキーボードを使用したコマンドラインから)。