Как создать меню предложений автозаполнения в интерактивном приложении командной строки? - PullRequest
1 голос
/ 01 мая 2019

Предположим, у меня есть этот код:

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

direction = input('Direction: ')

Когда он запускается из оболочки bash с использованием python3 myprogram.py, пользователю будет предложено ввести направление. Есть только четыре варианта, поэтому я хотел бы показать пользователю меню с предложением автозаполнения, подобное этому примеру в vim, за исключением того, что меню должно появиться в оболочке bash:

completion

Пользователь должен иметь возможность циклически переключаться между доступными вариантами, нажимая Tab или клавиши со стрелками вверх и вниз.

Как я могу использовать Python для создания меню подсказок автозаполнения, которое появляется в оболочке bash?

Я попробовал модуль curses, но он не подходит, потому что он очищает экран (аналогично эта проблема ). Нужно ли вручную манипулировать управляющими символами ANSI?

1 Ответ

1 голос
/ 29 мая 2019

Вы можете попробовать использовать Python Prompt Toolkit , библиотеку для создания интерактивных приложений командной строки в Python.

Библиотека позволяет легко добавлять интерактивные меню автозаполнения:

pgcli - Python Prompt Toolkit

(Источник изображения: pcgli )

...