Vous ne pouvez pas. Il suffit d'enregistrer l'événement normal de la touche et de pousser les touches dans un tableau.
Vous pouvez maintenant appeler une fonction qui vérifie la présence des commandes :
// More or less pseudo code
function deleteLine(){};
function copyLine(){};
var commands = {'dd': deleteLine, 'yy': copyLine};
function onKeyPress(e) {
keyList.push(e.key);
// in this example keyList = ['d', 'y', 'i', 'd', 'd']
var result = handleEvent();
}
function handleEvent(keyList) {
// more pseudo code follows
var cmds = commands.keyValue.sortByLengthDescending();
for(var c in cmds) {
// match the keys
var ckey = c.split('');
for(var i = keyList.length; i >= 0; i--) {
if (keyList[i] !== ckey.shift()) {
break;
}
if (ckey.length === 0) {
return commands[c]();
}
}
}
}
C'est simple, propre (cela dépend de la façon dont vous l'écrivez exactement) et évolutif, il est assez facile d'ajouter des commandes, bien sûr en le modifiant pour pouvoir passer des paramètres à la fonction de commande, etc.