En utilisant la dernière version de xterm.js
4.2.0 je veux pouvoir détecter les événements clés et les transmettre sur le terminal, je ne peux pas détecter quand ENTER
ou ALT
ou SHIFT
est pressé comme avant avec l'ancienne version 3.x.x
Pourquoi Enter renvoie ""
?
Ce que j'ai fait:
term.onKey(key => {
const char = key;
console.log(key);
console.log(char.key === "");
if (char === "") {
console.log("Enter pressed");
prompt();
} else {
term.write(char);
}
});
prompt = () => {
var shellprompt = "$ ";
term.write("\r\n" + shellprompt);
};
Je suis un nouvel utilisateur de la bibliothèque :)
@jerch @Tyriar @parisk
C'est là que vous trouverez que c'est en fait \r
:
C'est ce qu'un émulateur de terminal enverrait normalement à un shell. Si key
n'a pas ce que vous recherchez, nous exposons également directement le KeyboardEvent
:
@Tyriar Vous êtes incroyable, vous le savez :)?
J'ai fini par utiliser KeyboardEvent => keyboardEvent.domEvent.key
Commentaire le plus utile
C'est là que vous trouverez que c'est en fait
\r
:C'est ce qu'un émulateur de terminal enverrait normalement à un shell. Si
key
n'a pas ce que vous recherchez, nous exposons également directement leKeyboardEvent
:https://github.com/xtermjs/xterm.js/blob/414eea2a2c4cde4c8fb72bb98cd48650bb89c927/typings/xterm.d.ts#L439 -L445