Ace Editor 上的按键事件

Keydown event on Ace Editor

在这个神奇的编辑器(Ace: Code Editor)上,有一个方法可以获取on change事件,有on keydown事件吗?或者我可以模拟它的技巧?

没有keydown事件,可以在editor.textInput.getElement()返回的textarea上添加keydown事件监听器,但是更好的方法是使用editor.commands.addCommand

editor.commands.addCommand({
    name: "...",
    exec: function() {},
    bindKey: {mac: "cmd-f", win: "ctrl-f"}
})

editor.keyBinding.addKeyboardHandler

我在 the documentation, but in this discussion 找不到它,我找到了 editor.commands.on('afterExec', ...) API:

editor.commands.on('afterExec', eventData => {
    if (eventData.command.name === 'insertstring') {
        console.log('User typed a character: ' + eventData.args);
    }
});

afterExec 在编辑器中的每个 命令 上触发。 命令 包括输入文本、在 ctrl+space 上出现完成弹出窗口等操作...

它不是 keydown 事件的直接模拟,但它是我来到这里时正在谷歌搜索的东西,所以希望你会发现它有用。