sinbad.sin...@gmail.com wrote: > Below i was expecting the test() function to be called, but it doesn't. Am > i doing it wrong? By the way i'm running version 2.7.10 on a mac. > > $python > >>>> import readline >>>> def test(): > ... print("test") > ... >>>> test() > test >>>> print(help(readline)) > > None >>>> readline.set_completer(test) >>>> raw_input() > > '\t\t\t' >>>>
You need to tell readline that you want the tab key to complete with parse_and_bind(), and you need a complete function with the right signature: >>> import readline >>> def test(prefix, index): ... try: return [s for s in "foo forge fun".split() if s.startswith(prefix)][index] ... except IndexError: return None ... >>> readline.set_completer(test) >>> readline.parse_and_bind("tab: complete") >>> raw_input() f foo forge fun fo foo forge forge 'forge' -- https://mail.python.org/mailman/listinfo/python-list