spawnでviを起動する
nodeの実行時にvi起動したくて例えばperlとかだと
system 'vi /tmp/foo.txt';
とかで起動できて簡単なんだけどnodeで
var exec = require('child_process').exec; exec('vi /tmp/foo.txt', function() { ... });
とかやっても起動しないのでどうしたもんかと思って調べた。
var spawn = require('child_process').spawn; var vi = spawn('vi', ['/tmp/foo.txt'], { customFds: [ process.stdin, process.stdout, process.stderr ] });
これでいけるみたいだけどcustomFdsがよくわかりません><
customFds は新しいプロセスの [stdin, stdout, stderr] を既存のストリームに接続することを可能にします; -1 は新しいストリームが作られなければならないことを意味します。
http://nodejs.jp/nodejs.org_ja/api/child_processes.html
デフォルトは customFds: [-1, -1, -1] なので、何も指定しないと新しいストリームになるので既存のprocessのストリームを指定すればいいということかな