2016-05-12 2 views
2

Когда я запускаю программу, которая использует somevar = sys.stdin.readline(), я не могу использовать мои команды vi (у меня есть set -o vi в моем .bashrc) при вводе текста в stdin. Есть ли способ включить эту функцию при чтении из stdin в сценарии python? Я использую python2.7.Python: режим vi при чтении из stdin

+1

См: https://pymotw.com/2/readline/ и после этого, https://docs.python.org/2/library/readline .html и https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html –

+0

Но обратите внимание, что модуль 'readline' влияет только на' raw_input() 'и не влияет на' sys.stdin .readline() '. –

ответ

2

Если у вас установлен модуль readline, попробуйте его. Вот фрагмент кода, я скопировал из этого page:

import readline 

readline.parse_and_bind('tab: complete') 
readline.parse_and_bind('set editing-mode vi') 

while True: 
    line = raw_input('Prompt ("stop" to quit): ') 
    if line == 'stop': 
     break 
    print 'ENTERED: "%s"' % line