我试图在使用完后取消激活readline自动完成。所以我想写一个这样的装饰:取消激活readline自动完成
#!python
from contextlib import contextmanager
import readline
def main():
with readline_autocompletion():
raw_input('first: ')
raw_input('second: ')
@contextmanager
def readline_autocompletion():
readline.parse_and_bind('tab: complete')
readline.set_completer_delims(' \t\n')
readline.set_completer(None)
yield
# How to unload autocompletion without this hack??
readline.set_completer(no_complete)
def no_complete(text,state):
return None
if __name__ == '__main__':
main()
如何为第二raw_input()
再次停用自动完成的ReadLine?
编辑
我现在管理设置完成者,它只有返回None
停用完成(见上面的代码)。这是真的要走的路,以便再次停用自动补全?感觉像一个黑客。
我将能够在星期一进行测试,感谢您的答案!你知道在哪里可以找到一些资源如何处理readline模块?蟒蛇文档不是真的广泛.. – Salo
@Salo我添加了示例和参考。您可以看到最可靠的文档是库源代码。 –
感谢您的努力。我现在开始理解这个readline模块是如何工作的;) – Salo