[vim] Use keymap binding instead of event handlers

Revert back to using CodeMirror keymap for key handling instead of direct key handlers.
https://github.com/codemirror/CodeMirror/issues/2915

@heppe please review at your convenience.
@nightwing you probably have to add a proxy for the `call` property on keymaps in ACE https://github.com/codemirror/CodeMirror/commit/dd2b9d86ac30feb74c0bf0b999893382cd9f1e07
(If you really want a `console.log` in production code, write `console["log"]` to prevent the linter from complaining.)