2013-08-19 1 views
4

Я хотел бы написать небольшое приложение/каталог/файл запуска в python. Чтобы сделать это быстро, я хотел бы автозаполнение/автозапуск записей. Но я хочу отображать эти предложения в качестве типов пользователей. Из того, что я прочитал о завершении модуля readline, возможно только с помощью «Горячей клавиши завершения», например. Tab.Завершить as-you-type в командной строке с помощью python

Любые предложения?

Использование проклятий с фильтром, как предлагается ниже, похоже, не работает. Этот минимальный пример очищает мой экран, несмотря на призыв к фильтрации():

import curses 

curses.filter() 
win = curses.initscr() 

curses.noecho() 
curses.cbreak() 


while 1: 
    key = win.getkey() 
    win.echochar(key) 
    if key == "Q": 
    break 

curses.endwin() 

ответ

1

Я хотел бы попробовать с "проклятием" библиотекой:

http://docs.python.org/2/library/curses.html

У вас есть связанная тема:

How to make python autocompletion display matches?

+0

Проклятия будут работать, я думаю, однако, похоже, что он очищает экран, который может вызвать плохую интеграцию с оболочкой – joekr

+0

@joekr. Вы правы, на http://stackoverflow.com/questions/4772061/curses-library-c-getch-without-clearing-screen кто-то попросил решение по той же проблеме (очистка экрана) и получил решение для curses, используя язык C, просто вызывающий newterm вместо initscr. Тем не менее, я думаю, что это решение не применяется здесь, потому что библиотека python curses не предлагает метод «newterm». –

+0

@joekr Я только что обнаружил, что вы можете переопределить начальную очистку экрана с помощью метода «фильтр»: http://docs.python.org/2/library/curses.html#curses.filter –