readline set_completion_display_matches_hook在显示提示之前需要返回键

时间:2013-03-01 01:14:30

标签: python readline

背景

您好我正在尝试为readline中的制表符完成输出编写自定义显示。这是我的display hook函数 -

代码

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

问题

但问题是我必须按返回键才能获得提示,这与默认选项卡完成输出不同,我可以立即得到提示。我看到rl模块已被另一个线程中的某人建议,但是没有办法通过readline本身完成它吗?

1 个答案:

答案 0 :(得分:1)

好的,我找到了一种方法,不确定这是否是解决问题的正确方法。但我在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()

这很有效。