背景: readlineライブラリを使用して入力を処理するシェルのようなアプリケーションに接続するPythonサブプロセスがあり、そのアプリには、bashと同様にコマンド入力用のTABコンプリートルーチンがあります。次のように、子プロセスが生成されます。
def get_cli_subprocess_handle():
return subprocess.Popen(
'/bin/myshell',
shell=False,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
タブコンプリートを除いて、すべてがうまく機能します。Pythonプログラムがタブ文字'\t'
をサブプロセスに渡すときはいつでも、readlineライブラリのタブ完了ルーチンをトリガーする代わりに、STDINに5つのスペースを取得します。:(
質問: 子のタブ完了機能をトリガーするために、サブプロセスのSTDINに何を送信できますか?別の方法で質問されるかもしれません。可能であれば、TAB文字ではなくTABキーを送信するにはどうすればよいですか。
関連しているが未回答で脱線している: