在gist Ace Editor中启用Vim模式

Nic*_*lin 11 javascript gist

我正试图在github gists上为我心爱的Vim启用Ace的keyBoard处理程序.这似乎是一件容易的事情,但我正在努力:

  1. 找到gist ace编辑器所附加的对象(editor未定义ace默认值)
  2. 通过github托管的Vim绑定将其设置为使用VIM: https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js

我在Ace Google Group上找到了以下代码:

env.editor.setKeyboardHandler(require("ace/keyboard/keybinding/vim").Vim)

但这不起作用(即使我替换github url)所以我假设这适用于Cloud9 IDE,而不是自主/定制Ace.

bri*_*rns 24

在最新版本的ace(v1.1.1)中,内置了vim和emacs绑定.以下工作原理:

editor.setKeyboardHandler("ace/keyboard/vim");
Run Code Online (Sandbox Code Playgroud)

  • 看来,要恢复到默认模式,可以这样做:`editor.setKeyboardHandler("");` (2认同)

Nic*_*lin 10

发布了王牌谷歌集团(+代表Harutyun),并收到了以下代码的回复:

ace.require("ace/lib/net").loadScript("https://rawgithub.com/ajaxorg/ace-builds/master/src-min-noconflict/keybinding-vim.js", 
function() { 
    e = document.querySelector(".ace_editor.ace-github").env.editor; 
    e.setKeyboardHandler(ace.require("ace/keyboard/vim").handler); 
}) 
Run Code Online (Sandbox Code Playgroud)

它的作用就像一个魅力(注意github使用的ace版本可能会改变,这可能会打破这个).

每次进入控制台都很痛苦,所以我打算将它添加到一个greasemonkey脚本(一个chrome插件可能很好! - 很好看).

更新


我编写了一个小型Chrome扩展程序,可以在大多数网站Ace.js和CodeMirror上启用Vim绑定.欢迎来自github回购的问题和贡献