readline モジュールを使用してオートコンプリート機能を提供する cmd モジュールを使用して、Python で CLI を作成しています。オートコンプリートは同じ行にさまざまなオプションを表示しますが、それらを別の行に表示したいのですが、それを可能にするパラメーターが cmd に見つかりません。
これはプログラムの例です:
import cmd
class mycmd(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
def do_quit(self, s):
return True
def do_add(self, s):
pass
def do_addition(self, s):
pass
def complete_add(self, text, line, begidx, endidx):
params = ['asd', 'asdasd', 'lol']
return [s for s in params if s.startswith(text)]
if __name__ == '__main__':
mycmd().cmdloop()
これが結果です。
(Cmd) <tab> <tab>
add addition help quit <-- I want these on different lines
(Cmd) add<tab> <tab>
add addition <--
(Cmd) add <tab> <tab>
asd asdasd lol <--
(Cmd) add asd<tab> <tab>
asd asdasd <--
各オートコンプリート オプションの最後に行区切りを追加すると、次のようになります。
(Cmd) add <tab> <tab>
asd^J asdasd^J lol^J
とにかく、これはコマンドのオートコンプリートを解決せず、パラメーターのみを解決します。
助言がありますか?
助けてくれてありがとう!