从PHP CLI打开Vim

从PHP CLI打开Vim,php,vim,Php,Vim,当您从commit命令中删除-m时,如何从svn和git这样的CLI打开vim 我得到以下错误:Vim:警告:输出未连接到终端 `echo "Please edit this file" > file.name`; `vim file.name`; 编辑: 我刚刚意识到,听起来你已经为svn/git设置好了。。。你想从哪打开它 对于bash:export SVN_EDITOR=vim,尽管EDITOR也可以工作,但这也会影响其他事情。如果由于某种原因vim不在您的路径上,您也需要使用完

当您从commit命令中删除-m时,如何从svn和git这样的CLI打开vim

我得到以下错误:Vim:警告:输出未连接到终端

`echo "Please edit this file" > file.name`;
`vim file.name`;
编辑

我刚刚意识到,听起来你已经为svn/git设置好了。。。你想从哪打开它



对于bash:
export SVN_EDITOR=vim
,尽管
EDITOR
也可以工作,但这也会影响其他事情。如果由于某种原因vim不在您的路径上,您也需要使用完整路径。将其放入
.profile
.bash\u profile

PHP不会自动通过标准输入/标准输出流,您需要手动执行:

`echo "Please edit this file" > file.name`;
system("vim file.name > `tty`");

(注意:我不太明白我在说什么,我只知道上面的方法是有效的。)

您好,这是一个在PHP中使用proc_open的示例,仅在带有/dev/tty(Linux/OSX)的系统中运行


尝试编写一个php脚本以类似的方式打开vim。这非常有效。但是它有一些问题,因为您正在更改输出缓冲区,系统会在退出vim之前自动返回到PHP脚本。我把它改为exec();这与``相同。这就阻止了绞刑。它应该在窗户上工作吗?我得到了洛根提到的警告。
<?php

$descriptors = array(
        array('file', '/dev/tty', 'r'),
        array('file', '/dev/tty', 'w'),
        array('file', '/dev/tty', 'w')
);

$process = proc_open('vim', $descriptors, $pipes);