设置 completekey=None 删除向上箭头功能

Setting completekey=None removes up-arrow functionality

我正在尝试使用 Python 中的 cmd 库编写一个小型 REPL。它提供的功能之一是自动完成制表符,这是我不想要的。

幸运的是,文档提到了 "If completekey is not None and readline is available, command completion is done automatically." 所以我在实例化我的 cmd.Cmd 子类时设置了 completekey=None,它起作用了。

然而,cmd 模块的主要功能,使用 readline 支持向上箭头历史,也被禁用,现在我回到 ^[[A的。

为什么会这样,有解决办法吗?

仅当 completekey 具有非 None 值时才导入 readline 模块。看起来使用 readline 和禁用完成的唯一方法是指定一个什么都不做的完成器。

class CmdSubclass(Cmd):
    # Other configuration
    # ...

    def complete(self, *args):
        pass