立即在Mac上的CLI中注册击键
我想用nodejs编程一个小的CLI应用程序。
我想要一个特定的string来logging,取决于哪个箭头键被抚摸。 我尝试了一些缺陷的按键库。 ![在这里input图片描述] [1]
首先,我需要在注册按键之前按“Enter”键。 另外,当按下箭头键时,CLI显示随机字符。
process.stdin.on('keypress', function (ch, key) { if (key.ctrl && key.name == 'c') { process.stdin.pause(); } else { console.log('test!'); } });
产量
^[[A test! ^[[B test! ^[[C test!
任何想法如何做得更好?
我发现了一个更好的select,开箱即用:
var stdin = process.stdin; stdin.setRawMode(true); stdin.resume(); stdin.setEncoding('utf8'); stdin.on('data', function(key){ if (key == '\u001B\u005B\u0041') { process.stdout.write('up'); } if (key == '\u001B\u005B\u0043') { process.stdout.write('right'); } if (key == '\u001B\u005B\u0042') { process.stdout.write('down'); } if (key == '\u001B\u005B\u0044') { process.stdout.write('left'); } if (key == '\u0003') { process.exit(); } // ctrl-c });