【发布时间】:2016-01-07 09:21:33
【问题描述】:
我尝试在使用 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 的完成程序来停用完成(参见上面的代码)。这是真的再次停用自动完成功能的方法吗?感觉像个黑客。
【问题讨论】:
标签: python linux python-2.7 cygwin readline