考虑以下Python 2.7脚本:
#!/usr/bin/python
import cmd
class T(cmd.Cmd):
def completedefault(self, *a):
print 'completedefault called'
return []
t=T()
t.cmdloop()
当我期待:
我在shell中输入一个字符,然后点击tab,我希望看到“已完成故障”打印。
实际发生的事情:
我在shell中键入一个字符,然后点击tab,没有任何反应。
使用Python 2.7.3进行测试。
答案 0 :(得分:3)
completedefault
- 方法的命令后,调用 complete_<commandname>
来完成输入行。
试试这个:
#!/usr/bin/python
import cmd
class T(cmd.Cmd):
def completedefault(self, *a):
print 'completedefault called'
return []
def test(self, *args):
print "test args: ", args
t=T()
t.cmdloop()
现在输入test
[空格]并按Tab键,现在应执行completedefault
。
如果要控制命令名称的完成,可以使用completenames
执行此操作,而不是completedefault
。