2013-10-21 19 views
0

所以我試圖做的是一個問題的組合,我已經問在這裏:打開崇高和獲取文本的結果添加到文件

「 我想提出一個命令行應用程序。我希望允許用戶在終端中添加值時,可以使用他們的文本編輯器添加值。git如何實現這一點?

我想打開它們的默認編輯器,允許他們輸入文字,當他們保存得到的價值和使用我的應用程序的價值。 「

我fi確定瞭如何用vim做到這一點:

var vim = require('child_process').spawn('vim', ['test.txt'], {stdio: 'inherit'}); 
vim.on('exit', process.exit); 

但是,我會如何做到這一點崇高?如果我用subl替換vim,它會打開崇高,但是立即返回文件的當前值,並且不會等到我以崇高的方式保存文件。可能?

回答

1

你需要用-w--wait開關運行subl

var subl = require('child_process').spawn('subl', ['-w', 'test.txt'], {stdio: 'inherit'}); 
subl.on('exit', process.exit); 

而是在應用程序中硬編碼sublvim的,我建議你使用EDITOR環境變量,如果它被設置:

if (process.env.EDITOR) { 
    var editorArgs = process.env.EDITOR.split(' '); 
    var editorExecutable = editorArgs.shift(); 
    var editor = require('child_process').spawn(editorExecutable, editorArgs.concat(['test.txt']), {stdio: 'inherit'}); 
    editor.on('exit', process.exit); 
} else { 
    // Run subl or vim 
    // ... 
} 
+0

非常感謝!很簡單。並且,謝謝,現在我也知道如何從節點獲取EDITOR值:p – Jonovono

相關問題