2013-03-18 86 views
10

我试图在github gists上启用我的心爱的Vim的Ace的keyBoard处理程序。这似乎是这将是一件容易的事,但我很努力:在主要编辑器中启用Vim模式编辑器

  1. 找出要点王牌编辑器连接到(王牌默认editor没有定义)
  2. 将其设为对象使用VIM,通过GitHub的托管Vim的结合:https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js

我发现在谷歌王牌集团下面的代码片段:

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

但是这并不起作用(即使我替换了github url),所以我假设这适用于Cloud9 IDE,而不是selfhosted/custom Ace。

+0

+1 ...我也在寻找这个。 – jdar 2013-04-18 15:34:05

+0

从Ace谷歌集团获得一些帮助。请随时尝试下面的代码,看看它是否适合你。 – 2013-04-18 21:46:04

回答

9

posted的王牌谷歌集团(+代表到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); 
}) 

这就像一个魅力的作品(请注意,王牌的版本github上使用可能改变,这可能会破坏这一点)。每次将它输入控制台都很麻烦,因此我打算将它添加到一个greasemonkey脚本(一个chrome插件可能不错!

更新


我写了一个小Chrome Extension,使大多数网站Ace.js和CodeMirror Vim的绑定。问题和贡献在github repo

+0

谢谢尼克!在gists这适用于我...但注意它在github.com适当的失败。 – jdar 2013-05-07 20:58:45

23

在ACE(V1.1.1)的最新版本的欢迎,VIM和emacs绑定进来建于以下工作:

editor.setKeyboardHandler("ace/keyboard/vim"); 
+1

+1感谢您的更新。 Gist仍然使用Ace的旧版本(截至2013年12月),但对于使用较新版本的网站非常有用。 – 2013-12-08 01:40:54

+1

注意:这个方法可行,但是Ace现在在一个页面中支持多个编辑器,所以你不会找到一个单独编辑器的全局对象。 Do:'editors [0] .setKeyboardHandler(“ace/keyboard/vim” );' – pixelpax 2016-11-20 20:25:33

+0

看来,要恢复到默认模式,这个工作:'editor.setKeyboardHandler(“”);' – 2016-11-30 21:32:31

1

我是不是能够得到其他两种解决方案工作。 (尽管如此,Nick的Chrome扩展仍然适用于我。)

另一种解决方案是在设置菜单中更改为vim模式。

要访问设置菜单,请确保ACE编辑器具有焦点,然后按ctrl + ,(控制和逗号)。

这将打开屏幕右侧的菜单。找到“键盘处理程序”下拉列表并选择vim。按escape或点击设置菜单关闭它。

vim现在应激活模式。