我想模拟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/