Я пытаюсь написать небольшой REPL, используя библиотеку cmd
в Python. Одной из возможностей, которую он предоставляет, является автоматическое завершение табуляции, чего я не хочу.Настройка completekey = None удаляет функциональность со стрелкой вверх
К счастью, в документах упоминается «Если полная клавиша не является None и доступна readline, завершение команды выполняется автоматически». Поэтому я установил completekey=None
, когда я создал экземпляр моего подкласса cmd.Cmd
, который работал.
Однако основная функциональность cmd
модуля, использование readline
, который дает поддержку стрелка вверх истории, также была отключена, и теперь я вернулся к ^[[A
«с.
Почему это происходит, и есть ли решение?
Это, вероятно, происходит потому, что, когда 'completekey = None', то' readline' модуль никогда не загружен (см [источник] (https://hg.python.org/cpython/file/3.5/Lib/ cmd.py). Вы можете работать с помощью подкласса 'cmd.Cmd', переопределяя либо' cmdloop', либо переопределяющие 'complete' методы. – Evert