我有以下代码:
$process = new Process('vi'); 尝试 { $process->setPty(true); $process->mustRun(function ($type, $buffer) { 回声$缓冲区; }); //回显 $process->getOutput(); } 捕捉(ProcessFailedException $e){ 回声 $e->getMessage(); }
但是,它因以下信息而死:
命令“vi”失败。 退出代码:1(一般错误) 工作目录:[路径] 输出: ================= Vim:读取输入时出错,正在退出... 维姆:完成。 错误输出: ================= Vim:警告:输出不是终端 Vim:警告:输入不是来自终端
更新
似乎有些人不清楚我要做什么。我会解释。此脚本正在控制台中运行。同样的事情通过 passthru 起作用(尽管 Vim 仍然警告输出)。我想要一个交互式过程,允许用户在将某些文件发送到某个地方之前对其进行修改。我不想实现自己的编辑器,这就是我希望他们使用 vi 的原因。vi 在我的服务器上可用(从我提供的输出中可以清楚地看到)。