我想提示用户输入,让用户输入多行文本,在每一行之间按回车键,然后通过按CTRL + D或其他方式终止输入。
使用“keypress”,我可以捕获EOF,但我必须手动处理所有回显、退格处理、终端转义序列等。如果我能使用“readline”,但在其中使用“keypress”拦截CTRL + D(EOF),那将是更好的选择,但我不确定该怎么做。
我想提示用户输入,让用户输入多行文本,在每一行之间按回车键,然后通过按CTRL + D或其他方式终止输入。
使用“keypress”,我可以捕获EOF,但我必须手动处理所有回显、退格处理、终端转义序列等。如果我能使用“readline”,但在其中使用“keypress”拦截CTRL + D(EOF),那将是更好的选择,但我不确定该怎么做。
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);
});
@inquirer/editor
包在这方面做得非常出色。import editor from '@inquirer/editor';
const story = await editor({
message: "Tell me a story",
waitForUseInput: true,
postfix: '.md',
})