【发布时间】:2015-01-21 23:01:05
【问题描述】:
我正在将 Ace Editor 集成到 Web 应用程序中并使用 vim 键绑定,如下所示:
var editor = ace.edit('editor');
editor.setDisplayIndentGuides(false);
editor.setHighlightActiveLine(false);
editor.setShowFoldWidgets(false);
editor.setShowInvisibles(false);
editor.setShowPrintMargin(false);
editor.setKeyboardHandler('ace/keyboard/vim');
我也将此命令映射到 Ctrl-S/Command-S 只是因为我想测试行为
editor.commands.addCommand({
name: 'saveFile',
bindKey: {
win: 'Ctrl-S', mac: 'Command-S',
sender: 'editor|cli'
},
exec: function (env, args, request) {
console.log('saving...', env, args, request);
}
});
虽然这可行,但问题是当使用 ESCape 键在 Vim 中进入“正常”模式并使用 :w 保存文件时,上面定义的命令的 exec 函数不会像使用 Ctrl- 那样被调用S/Command-S ...
keybinding-vim.js 文件抛出关于 CodeMirror.commands.save 未定义的错误 ...
我查看了 API 文档和演示,但无法找到解决此问题的“正确”方法。
帮助表示赞赏。 谢谢
【问题讨论】:
-
删除了
vim标签,因为这个问题不是关于 vim 的。它更像是一些 javascript 的东西。 -
@Kent 编辑标签,你错过了“javascipt”? :D
-
@Kent 谢谢,下次我会小心的
标签: javascript ace-editor