我想模拟bash输入行为(例如,按向上箭头访问输入历史,按ctrl+c取消输入,按ctrl+d退出)。
但是,如果我想转义箭头键(默认情况下,箭头键被^[[a,^[[b,^[[c和^[[d]替换),我需要将raw模式设置为on,然后,每次按下键时都会触发输入事件。这很有用,但我需要硬编码基本的输入行为,如返回键或删除键…
那么,有没有一种方法,可能是通过在stdin上设置一个流来访问原始模式和非原始模式下的输入?

最佳答案

解决方案是readline模块(doc)。它提供了一个输入历史记录、一个自动完成(按Tab键点击)等。
例子:

var readline = require('readline');

var rl = readline.createInterface({
    input : process.stdin,
    output : process.stdout,
});

function input (prompt, callback) {
    rl.question(prompt, function (res) {
        if (res === 'quit') rl.close();
        else callback(res);
    });
}

在doc中给出了一个here命令行接口的例子

关于node.js - nodejs-类似于Bash的stdin,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18573609/

10-12 16:24