如何在交互式命令行应用程序中创建自动完成建议菜单?

时间:2019-05-01 17:24:48

标签: python bash autocomplete command-line-interface

假设我有以下代码:

choices = [
    'north',
    'south',
    'east',
    'west',
]

direction = input('Direction: ')

使用python3 myprogram.py从bash shell运行该命令时,将提示用户输入方向。只有四种选择,所以我想向用户展示一个类似于vim中此示例的自动完成建议菜单,除了该菜单应该出现在bash shell中:

completion

用户应该可以通过按 Tab 或向上和向下箭头键来循环选择可用的选项。

如何使用Python构建显示在bash shell中的自动完成建议菜单?

我尝试了curses模块,但是它不适合,因为它可以清除屏幕(类似于this problem)。我必须手动操作ANSI转义字符吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Python Prompt Toolkit(一个用于在Python中构建交互式命令行应用程序的库)。

该库可轻松添加交互式自动完成菜单:

pgcli - Python Prompt Toolkit

(图片来源:pcgli