Практическое руководство делает автозавершение командной строки Python, но НЕ только в начале строки

awk -F'[ |]' '/EpoServerList/{print $2"\n"$5}' file
10.0.25.15
10.0.25.20
6
задан Community 23 May 2017 в 09:57
поделиться

1 ответ

Я не уверен, что понимаю проблему. Вы могли использовать readline.clear_history и readline.add_history для установки completable строк, которые Вы хотите, затем управляете-r для поиска невыполнения обещания в истории (так же, как если бы Вы были при приглашении оболочки). Например:

#!/usr/bin/env python

import readline

readline.clear_history()
readline.add_history('foo')
readline.add_history('bar')

while 1:
    print raw_input('> ')

С другой стороны, Вы могли записать свою собственную completer версию и связать соответствующий ключ к нему. Это кэширование использования версии в случае, если Ваш список соответствия огромен:

#!/usr/bin/env python

import readline

values = ['Paul Eden <paul@domain.com>', 
          'Eden Jones <ejones@domain.com>', 
          'Somebody Else <somebody@domain.com>']
completions = {}

def completer(text, state):
    try:
        matches = completions[text]
    except KeyError:
        matches = [value for value in values
                   if text.upper() in value.upper()]
        completions[text] = matches
    try:
        return matches[state]
    except IndexError:
        return None

readline.set_completer(completer)
readline.parse_and_bind('tab: menu-complete')

while 1:
    a = raw_input('> ')
    print 'said:', a
10
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: