2010-09-01 34 views
2

當你從commit命令中刪除-m時,如何從svn和git這樣的CLI打開vim?從PHP CLI打開Vim

我得到了如下錯誤:Vim:警告:輸出不是到終端

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

回答

4

PHP不會自動直通的標準輸入/輸出流,你需要做手工:

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

(注:我真的不明白我在說什麼,我只知道上述作品。)

+3

哈哈哈...愛你的筆記。 – prodigitalson 2010-09-01 03:22:31

+0

這很好。雖然有一些問題,因爲你正在改變輸出緩衝區系統在退出vim之前自動返回到PHP腳本。我將其更改爲exec();這與''相同。這阻止了懸掛。 – 2010-09-03 16:24:18

+0

它應該在Windows上工作嗎?我得到了Logan提到的警告。 – 2011-09-17 23:47:39

0

編輯

我才意識到這聽起來像你已經有這個設立svn/git ...你想從哪裏打開它?


對於bash:export SVN_EDITOR=vim雖然EDITOR也能發揮作用,儘管這會影響其他事情也是如此。如果由於某種原因vim不在你的路徑上,你也需要使用完整路徑。將其放入您的.profile.bash_profile

+0

試圖寫一個PHP腳本在打開VIM類似的方式。 – 2010-09-01 03:07:13

0

你好,這是使用PHP proc_open一個例子,只能運行在以/ dev/tty的系統(Linux/OSX)

<?php 

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

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