PHP で対話型プログラムを実行しようとしていますが、これは TTY で正常に動作しますが、PTY を介して STDIN/STDOUT をある程度制御することしかできません。
これを試したときにのみ、いくつかの奇妙な副作用があります.vimで何かを入力すると、以下のコードのように、印刷されたESCキーを使用できなくなります。
^[
これらを開始すると、いくつかの奇妙な文字もあります。
^[[2;2R^[[2;2R^[[>1;4002;0c^[[>1;4002;0c
$cmd = 'vim';
$proc = new \Symfony\Component\Process\Process($cmd);
$proc->setPty(true);
$proc->start();
$proc->wait(function($type, $buffer) use ($proc) {
if (\Symfony\Component\Process\Process::ERR) {
fwrite(STDERR, $buffer);
}
if (\Symfony\Component\Process\Process::OUT) {
fwrite(STDOUT, $buffer);
}
});
では、ESC キーが正常に動作し、stdin/stdout をある程度制御できるようにするにはどうすればよいでしょうか。