2016-05-12 8 views
2

Wenn ich ein Programm, das somevar = sys.stdin.readline() verwendet, kann ich nicht meine vi-Befehle verwenden (ich habe set -o vi in meinem. Bashrc) bei der Eingabe von Text in Stdin. Gibt es eine Möglichkeit, diese Funktionalität beim Lesen von stdin in einem Python-Skript zu aktivieren? Ich benutze Python2.7.Python: vi-Modus beim Lesen von stdin

+1

Siehe auch: https://pymotw.com/2/readline/ und danach, https://docs.python.org/2/library/readline .html und https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html –

+0

Beachten Sie jedoch, dass das 'readline' Modul nur auf' raw_input() 'wirkt und keine Auswirkung auf' sys.stdin hat .readline() '. –

Antwort

2

Wenn Sie das Modul readline installiert haben, versuchen Sie es. Hier ist ein Code-Snippet ich von diesen page kopiert:

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