Ace编辑器和Vim键盘绑定:使用:w命令

just_a_dude

我正在将Ace编辑器集成到一个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文档和演示,但无法找到解决此问题的“正确”方法。

帮助表示赞赏。谢谢

一个用户

尚无公共api可以执行此操作。但是你可以做

ace.config.loadModule("ace/keyboard/vim", function(m) {
    var VimApi = require("ace/keyboard/vim").CodeMirror.Vim
    VimApi.defineEx("write", "w", function(cm, input) {
        cm.ace.execCommand("save")
    })
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Firefox代码/样式编辑器中使用vim键盘绑定时,如何返回正常模式?

来自分类Dev

更改Ace编辑器的默认键绑定

来自分类Dev

重构Ace编辑器

来自分类Dev

Git rebase和Vim编辑器

来自分类Dev

ace编辑器-删除文本拖动和选择

来自分类Dev

Ace编辑器获取当前光标行和列

来自分类Dev

Ace 编辑器和最小化文件

来自分类Dev

ace编辑器ace-build和ace-build-master文件夹问题

来自分类Dev

VIM:chmod命令不是编辑器命令

来自分类Dev

使用ACE编辑器隐藏一些行

来自分类Dev

使用PHP获取Ace编辑器内容

来自分类Dev

Runnable在Ace编辑器实现中使用什么主题

来自分类Dev

如何使用CDN中的requirejs加载ace编辑器?

来自分类Dev

如何避免Vim错误消息“不是编辑器命令”

来自分类Dev

在vim中执行打开默认编辑器命令

来自分类Dev

为什么“ vi”命令打开“ vim”编辑器?

来自分类Dev

如何在vim编辑器中添加命令?

来自分类Dev

如何避免Vim错误消息“不是编辑器命令”

来自分类Dev

Yank 命令在 vim 编辑器中不起作用

来自分类Dev

Ace编辑器-用于粘贴的自定义按键绑定

来自分类Dev

ACE编辑器的UndoManager的奇怪行为

来自分类Dev

Ace编辑器:无法摆脱标记

来自分类Dev

Ace编辑器-转到行

来自分类Dev

ACE编辑器更改事件

来自分类Dev

ACE编辑器显示空白

来自分类Dev

Ace编辑器上的Keydown事件

来自分类Dev

ace编辑器设置新会话

来自分类Dev

Ace编辑器默认选择整行

来自分类Dev

Ace编辑器显示错误