簡體   English   中英

Node.js 如何獲取按下的鍵列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM