Я хотел бы отобразить меню выбора в оболочке xonsh, всякий раз, когда нажимается определенная комбинация клавиш, а затем запускать функцию, используя выбор пользователя из меню.
Я дошел до этого:
from prompt_toolkit.keys import Keys
from prompt_toolkit.completion import WordCompleter
@events.on_ptk_create
def outout_keybindings(prompter, history, completer, bindings, **kw):
handler = bindings.add
@handler('escape', 'u') # actually alt+u
def browse_links_handler(event):
compl = WordCompleter(['selection1','selection2', 'selection3', 'selection4'])
usr_sel = prompter.prompt('Enter your selection (TAB-complete): ', completer=compl)
my_process_selection(usr_sel)
Это может, например, войти в ~/.xonshrc
.
Проблема заключается в том, что мой код приводит к исключению, но в остальном почти работает, так как подсказка показывает, а xonsh кажетсячтобы знать о выбранных элементах, но меню не отображается, и появляется сообщение об ошибке:
Я в порядке с другими решениями для отображения меню выбора и наличия пользователявыберите опцию, если она является чистым python и не требует взаимодействия с мышью.
В обычном приложении с подсказками для подсказок это будет делать то, что я хочу: 101
https://python -prompt-toolkit.readthedocs.io / ru / master / pages / ask_for_input.html # autocompletion
¹ _, за исключением того, что должно появиться меню завершенияИмедиатлей, а не афПользователь набрал первую букву._