使用Python的Cmd.cmd完成选项卡

pok*_*oke 6 autocomplete tab-completion python-3.x

在python中使用Cmd.cmd框架测试一段时间后,我注意到一个问题,我不知道该怎么做.另外我相信在几个小时之前就可以使用它(或者我只是疯了),所以这更奇怪了.

我有以下示例代码,在Windows和Linux系统上进行了测试(因此它不是Windows问题),但选项卡完成根本不起作用.

如果我在Python 2中使用完全相同的代码,它可以在Linux系统上运行(但不能在Windows上运行)

import cmd
class Shell ( cmd.Cmd ):    
    def do_test ( self, params ):
        print( 'test: ' + params )

    def do_exit ( self, params ):
        return True

    def do_quit ( self, params ):
        return True

if __name__ == '__main__':
    x = Shell()
    x.cmdloop()
Run Code Online (Sandbox Code Playgroud)

你知道为什么会发生这种情况,或者我能做些什么来使标签完成成为可能吗?

Art*_*ski 5

它实际上适用于Linux上的Python 2和3.但是,我的python设置是使用readline支持编译的,根据cmd文档,它是自动的.我怀疑你的Linux Python 3没有用它编译.

不幸的是,readline是特定于Unix的.有关Windows上其他选项的讨论,请参阅Windows中的python选项卡完成.