【发布时间】:2014-01-08 13:50:28
【问题描述】:
我在 python 中使用 readline 进行自动补全
我想拥有它,所以如果我有:
names = ['ben dodds', 'james asda', 'izzy smidt']
当我有
> Insert name:
> be TAB
ben dodds
> ben TAB
ben dodds, james asda, izzy smidt
最后一个是错误的,因为它应该只显示 ben dodds
这是我目前的代码:
def completer(text, state):
options = [x for x in names if x.startswith(text)]
try:
return options[state]
except IndexError:
return None
readline.set_completer(completer)
if 'libedit' in readline.__doc__:
readline.parse_and_bind("bind ^I rl_complete")
else:
readline.parse_and_bind("tab: complete")
name = raw_input('Enter name\n')
print name
到目前为止,我收集到它与 readline.set_completer_delims() 有关,但我不知道如何让它工作,任何帮助将不胜感激
我已经试过了
readline.set_completer_delims('')
没用
【问题讨论】:
标签: python autocomplete readline