Nach einer Weile mit dem Cmd.cmd Framework in Python, habe ich ein Problem festgestellt, ich weiß nicht, was ich tun soll. Außerdem glaube ich, dass das einige Stunden vorher funktioniert hat (oder ich bin einfach nur verrückt), also ist das noch seltsamer.Tab-Vervollständigung mit Python's Cmd.cmd
Ich habe den folgenden Beispielcode, getestet auf Windows- und Linux-Systemen (es ist also kein Windows-Problem), aber Tab-Vervollständigung funktioniert einfach nicht.
Wenn ich den exakt gleichen Code in Python 2 verwenden Sie es auf dem Linux-System funktioniert (nicht auf dem Windows ein, obwohl)
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()
Sie wissen, warum dies geschieht, oder was kann ich tun , um die Tab-Vervollständigung zu ermöglichen?
Haben Sie die vollständigen_namen implementiert? –
Die 'complete_XY'-Funktionen dienen zur Vervollständigung von Argumenten (also wenn ich 'test f' gebe, könnte es mir' test foobar' anbieten), aber die Vervollständigung von Befehlen wird automatisch aus allen verfügbaren' do_XY'-Funktionen generiert. Auch wenn ich die Tabulatortaste drücke, wird einfach eine Registerkarte in die Befehlszeile eingefügt, während bei einer nicht kompatiblen Beendigung nichts passieren sollte (weil die Funktionen dann eine leere Liste zurückgeben). – poke