12

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

  1. 查找 gist ace 编辑器所附加的对象(ace 默认editor未定义)
  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。

4

4 回答 4

25

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

editor.setKeyboardHandler("ace/keyboard/vim");
于 2013-11-27T01:29:46.993 回答
10

我在 ace Google Group 上发帖(+rep to 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 扩展程序,可以在大多数网站 Ace.js 和 CodeMirror 上启用 Vim 绑定。欢迎在github 存储库中提出问题和贡献

于 2013-04-18T21:45:35.450 回答
1

我无法让其他两种解决方案发挥作用。(不过,尼克的 Chrome 扩展程序对我来说仍然非常有效。)

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

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

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

vim现在应该激活模式。

于 2015-05-28T18:45:04.747 回答
0

您必须与 react-ace 一起安装 ace-builds 才能访问主题、键绑定和其他

npm install react-ace ace-builds

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

import "ace-builds/src-noconflict/keybinding-vim"
<AceEditor
  ...
  keyboardHandler='vim'
  ...
/>
于 2020-10-30T08:56:02.357 回答