【发布时间】:2019-09-20 05:54:47
【问题描述】:
假设我有这个代码:
choices = [
'north',
'south',
'east',
'west',
]
direction = input('Direction: ')
当使用python3 myprogram.py 从 bash shell 运行时,将提示用户输入一个方向。只有四个选项,所以我想在 vim 中向用户显示一个类似于此示例的自动完成建议菜单,除了该菜单应出现在 bash shell 中:
用户应该能够通过按 Tab 或上下箭头键来循环选择可用的选项。
如何使用 Python 构建出现在 bash shell 中的自动完成建议菜单?
我尝试了curses 模块,但它不适合,因为它会清除屏幕(类似于this problem)。我必须手动操作 ANSI 转义字符吗?
【问题讨论】:
-
curses真的是你最好的选择。我不确定清除屏幕的问题在哪里。这是一个问题,因为您想在运行python3 myprogram.py之前保留以前的程序输出,还是因为您希望myprogram.py在运行 之后保留所有输入的输入。如果答案是前者,或许可以通过 gnureadline来实现。如果答案是后者,那么myprogram.py正在“清除”不应该出现的屏幕。 -
@Jason 我希望用户即使在显示菜单时也能看到 bash shell。您确定
readline可用于创建问题中所示的菜单吗?
标签: python bash autocomplete command-line-interface