3

バックグラウンド

こんにちは、readline でタブ補完出力のカスタム表示を作成しようとしています。これが私のdisplay hook機能です-

コード

def match_display_hook(self, substitution, matches, longest_match_length):
    print ''
    for match in matches:
        print match
    readline.redisplay()

質問

しかし、問題は、すぐにプロンプ​​トを表示できるデフォルトのタブ補完出力とは異なり、リターン キーを押してプロンプトを表示する必要があることです。モジュールが別のスレッドで誰かによって提案されているのを見rlましたが、readline 自体でそれを実行する方法はありませんか?

4

1 に答える 1

2

さて、私は方法を見つけましたが、これがそれを修正する正しい方法であるかどうかはわかりません. しかし、私は match_display_hook の最後にプロンプ​​トと readline バッファを出力しましたが、すべてうまくいっているようです。これが私の新しい match_display_hook です:

def match_display_hook(self, substitution, matches, longest_match_length):
    print ''
    for match in matches:
        print match
    print self.prompt.rstrip(),
    print readline.get_line_buffer(),
    readline.redisplay()

これはうまくいきます。

于 2013-03-05T00:02:05.147 に答える