【问题标题】:Complete as-you-type on command line with python使用 python 在命令行上按你输入的方式完成
【发布时间】:2013-08-21 01:10:07
【问题描述】:

我想在 python 中编写一个小型应用程序/目录/文件启动器。 为了让它更快,我想自动完成/自动建议条目。但我想显示 这些建议作为用户类型。从我读到的关于 readline 模块完成的内容是 只能使用“完成热键”,例如标签。

有什么建议吗?

按照下面的建议使用带有过滤器的诅咒似乎不起作用。尽管调用了 filter(),这个最小的例子还是清除了我的屏幕:

import curses

curses.filter()
win = curses.initscr()

curses.noecho()
curses.cbreak()


while 1:
  key = win.getkey()
  win.echochar(key)
  if key == "Q":
    break

curses.endwin()

【问题讨论】:

    标签: python shell command-line readline


    【解决方案1】:

    我会尝试使用“curses”库:

    http://docs.python.org/2/library/curses.html

    您在以下位置有相关主题:

    How to make python autocompletion display matches?

    【讨论】:

    • 我猜诅咒会起作用,但它似乎会清除屏幕,这会导致与 shell 的不良集成
    • @joekr 你说得对,在stackoverflow.com/questions/4772061/… 有人要求解决同样的问题(屏幕清除),并使用 C 语言得到了一个解决方案,只需调用 newterm 而不是 initscr。不过,我认为该解决方案不适用于此处,因为 python curses 库不提供“newterm”方法。
    • @joekr 我刚刚发现您可以使用“过滤器”方法覆盖初始屏幕清除:docs.python.org/2/library/curses.html#curses.filter
    猜你喜欢
    • 2014-04-20
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    相关资源
    最近更新 更多