So senden Sie die Tabulatortaste an das STDIN des Python-Unterprozesses
Hintergrund: Ich habe einen Python-Unterprozess, der eine Verbindung zu einer Shell-ähnlichen Anwendung herstellt, die die readline-Bibliothek verwendet, um Eingaben zu verarbeiten, und diese App hat eine TAB-vollständige Routine für die Befehlseingabe, genau wie bash. Der untergeordnete Prozess wird wie folgt erzeugt:
def get_cli_subprocess_handle():
return subprocess.Popen(
'/bin/myshell',
shell=False,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
Alles funktioniert super, außer tab-complete. Immer wenn mein Python-Programm das Tabulatorzeichen übergibt,'\t'
Für den Unterprozess erhalte ich 5 Leerzeichen in der STDIN, anstatt die Tab-Vervollständigungsroutine der Readline-Bibliothek auszulösen. :(
Frage: Was kann ich an die STDIN des Unterprozesses senden, um die Tab-Vervollständigungsfunktion des Kindes auszulösen? Vielleicht anders gefragt: Wie sende ich den TAB?Schlüssel im Gegensatz zum TABCharakter, ob das überhaupt möglich ist?
Verbunden, aber unbeantwortet und entgleist:
Trigger-Tab-Vervollständigung für Python-Batch-Prozesse, die auf Readline basieren