git commit
をコマンドラインから実行した時に Vim が自動で開いてコミットコメントを入力できるが、このような挙動を Node のCLIアプリを自作するときにどうやるか調べた。
ずばりな回答が以下。
Is there a way to quit Node.js and launch VIM on a file? - Stack Overflow
この回答では Vim を固定で指定しているが process.env.EDITOR
で Vim 以外のエディタにも対応できる。
var fs = require('fs');
var file = '~/.foo.txt';
var editor = require('child_process').spawn(process.env.EDITOR, [file], {stdio: 'inherit'});
editor.on('exit', function() {
var text = fs.readFileSync(file, 'utf-8');
console.log(text);
});
エディタの終了を exit
イベントで検知してコールバック内でファイルの内容を取得している。
毎回内容をクリアする場合は、fs.readFile[Sync]
した後に fs.unlink[Sync]
すればよい。