Usando a versão mais recente de xterm.js
4.2.0 eu quero ser capaz de detectar eventos-chave e passá-los no terminal, não consigo detectar quando ENTER
ou ALT
ou SHIFT
é pressionado como costumava fazer na versão anterior 3.x.x
Por que o Enter está retornando ""
?
O que eu fiz:
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);
};
Sou um novo usuário da biblioteca :)
@jerch @Tyriar @parisk
Lá você descobrirá que é realmente \r
:
Isso é o que um emulador de terminal normalmente enviaria para um shell. Se key
não tem o que você procura, também expomos KeyboardEvent
diretamente:
@Tyriar Você é incrível, sabia disso :)?
Acabei usando KeyboardEvent => keyboardEvent.domEvent.key
Comentários muito úteis
Lá você descobrirá que é realmente
\r
:Isso é o que um emulador de terminal normalmente enviaria para um shell. Se
key
não tem o que você procura, também expomosKeyboardEvent
diretamente:https://github.com/xtermjs/xterm.js/blob/414eea2a2c4cde4c8fb72bb98cd48650bb89c927/typings/xterm.d.ts#L439 -L445