提问人:Rich Remer 提问时间:10/14/2014 最后编辑:Gergo ErdosiRich Remer 更新时间:9/23/2023 访问量:11538
节点 .js 多行输入
Node.js multiline input
问:
我想提示用户输入,让用户输入多行文本,在每行之间按回车键,然后按 CTRL+D 或类似的东西终止输入。
通过“按键”,我可以捕获 EOF,但我必须手动处理所有回声、退格处理、终端转义序列等。如果我可以使用“readline”,但以某种方式用“keypress”拦截 CTRL+D (EOF) 会更好,但我不确定我该怎么做。
答:
21赞
Gergo Erdosi
10/14/2014
#1
var readline = require('readline');
var input = [];
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.prompt();
rl.on('line', function (cmd) {
input.push(cmd);
});
rl.on('close', function (cmd) {
console.log(input.join('\n'));
process.exit(0);
});
评论
1赞
Felix Jassler
6/26/2020
git 等命令还会打开一个默认编辑器供用户输入。这在 Node 上也可以吗?
2赞
Ulad Kasach
9/23/2023
#2
该软件包在这方面做得很好@inquirer/editor
它打开用户的默认编辑器进行输入
例如
import editor from '@inquirer/editor';
const story = await editor({
message: "Tell me a story",
waitForUseInput: true,
postfix: '.md',
})
评论