繁体   English   中英

从终端应用程序打开Sublime并获取添加到文件中的文本结果

[英]Open Sublime from terminal app and get the result of the text added to file

所以我想做的就是结合我已经在这里提出的一个问题:

“我正在制作一个命令行应用程序。我想允许用户在终端中为事物添加值时,能够使用其文本编辑器添加该值。git如何实现这一目标?

我想打开其默认编辑器,允许他们输入文本,然后在保存时获取值并将其用于我的应用程序。

我想出了如何用vim做到这一点:

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

但是我该如何做到崇高呢? 如果我用subl替换vim,它将打开sublime,但是立即返回文件的当前值,并且不会等到将文件保存在sublime中。 可能?

您需要使用-w--wait开关运行subl

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

建议您不要使用EDITOR环境变量(如果已设置)在应用程序中对sublvim进行硬编码:

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
  // ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM