Usando la última versión de xterm.js
4.2.0 quiero poder detectar eventos clave y pasarlos al terminal, no puedo detectar cuándo ENTER
o ALT
o SHIFT
se presiona como solía hacerlo con la versión anterior 3.x.x
¿Por qué Enter devuelve ""
?
Que he hecho:
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);
};
Soy un nuevo usuario de la biblioteca :)
@jerch @Tyriar @parisk
Allí encontrará que en realidad es \r
:
Eso es lo que normalmente enviaría un emulador de terminal a un shell. Si key
no tiene lo que busca, también exponemos el KeyboardEvent
directamente:
@Tyriar Eres increíble, ¿lo sabes :)?
Terminé usando KeyboardEvent => keyboardEvent.domEvent.key
Comentario más útil
Allí encontrará que en realidad es
\r
:Eso es lo que normalmente enviaría un emulador de terminal a un shell. Si
key
no tiene lo que busca, también exponemos elKeyboardEvent
directamente:https://github.com/xtermjs/xterm.js/blob/414eea2a2c4cde4c8fb72bb98cd48650bb89c927/typings/xterm.d.ts#L439 -L445