[英]Node js how to get list of keys pressed
我正在使用 Node.js 編寫命令行應用程序。我正在嘗試從標准輸入獲取按鍵。 到目前為止,這是我嘗試過的:
const readline = require('readline');
readline.emitKeypressEvents(process.stdin);
process.stdin.setRawMode(true);
process.stdin.on('keypress', (str, key) => {
console.log(str)
console.log(key)
})
這很好用。 它獲取所有字母,我可以看到是否按下了某些修飾符,例如控制/移位。 但它沒有注冊一些組合鍵,如 shift+alt+up。 我想要一種方法來獲取按下的鍵列表,這樣我就可以像那樣解析組合。
此外,一些鍵組合被注冊為 ansi 轉義序列。 例如:
// ctrl+a
{ sequence: '\x01', name: 'a', ctrl: true, meta: false, shift: false }
// ctrl+h
{
sequence: '\b',
name: 'backspace',
ctrl: false,
meta: false,
shift: false
}
這里 ctrl+a 在按下控制鍵時注冊為 'a',但 ctrl+h 注冊為退格鍵。 在這種情況下,我想要一種方法來查看是否按下了 ctrl+h。
標准輸入是基於字節流的,所以它只響應字節。 對應的擊鍵是否輸入字節取決於更高層,例如操作系統。 如果你想檢測擊鍵,你必須使用來自更高層的專有 API。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.