在gist Ace Editor中启用Vim模式

时间:2013-03-18 19:23:05

标签: javascript gist

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

  1. 找到gist ace编辑器所附加的对象(未定义ace默认editor
  2. 通过github托管的Vim绑定将其设置为使用VIM:https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js
  3. 我在Ace Google Group上找到了以下代码:

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

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

4 个答案:

答案 0 :(得分:23)

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

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

答案 1 :(得分:10)

我在Google Google小组上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使用的ace版本可能会改变,这可能会破坏这一点)。

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

<强>更新


我编写了一个小Chrome Extension,它可以在大多数Ace.js和CodeMirror站点上启用Vim绑定。问题和贡献欢迎github repo

答案 2 :(得分:1)

我无法让其他两个解决方案起作用。 (不过,Nick的Chrome扩展程序对我来说仍然非常适合。)

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

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

这将打开屏幕右侧的菜单。找到“键盘处理程序”下拉列表,然后选择vim。按escape或单击设置菜单中的某个位置以关闭它。

现在应该激活

vim模式。

答案 3 :(得分:0)

您必须安装ace-build以及react-ace才能访问主题,键绑定等

npm install react-ace ace-builds

在反应中,您必须添加以下行:

import "ace-builds/src-noconflict/keybinding-vim"
<AceEditor
  ...
  keyboardHandler='vim'
  ...
/>