如何在xonsh中显示选择菜单?

2024-09-30 04:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在xonsh shell中显示一个选择菜单,只要按下某个组合键,然后使用用户从菜单中的选择运行一个函数。你知道吗

我已经做到了这一点:

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似乎知道选择,但不显示菜单,并弹出错误消息:

Almost working menu

我对显示选择菜单和让用户选择选项的其他解决方案很满意,只要它是纯python并且不需要鼠标交互。你知道吗

在常规的prompt toolkit应用程序中,这将实现我想要的功能:¹

https://python-prompt-toolkit.readthedocs.io/en/master/pages/asking_for_input.html#autocompletion

Working menu in regular ptk

¹∗除了“完成”菜单应立即显示,而不是在用户键入第一个字母后显示。_你知道吗


Tags: 用户fromimportusrdef菜单bindingstoolkit

热门问题