2013-03-18 3 views
10

Я пытаюсь включить обработчик KeyBoard для Ace для моего любимого Vim на github gists. Кажется, что это было бы легко сделать, но я с трудом:Включить режим Vim в редакторе Ace Ace

  1. Найти объект, суть редактор аса прикрепленные к (туз по умолчанию editor не определенно)
  2. Установите его использовать VIM, с помощью размещенного Vim GitHub в связывании: https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js

Я нашел следующий фрагмент кода на Ace Google Группа:

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

Но это не работает (даже если я подставляю URL-адрес github), поэтому я предполагаю, что это относится к облачной среде Cloud9, а не к самозанятому/настраиваемому Ace.

+0

+1 ... Я тоже ищу это. – jdar

+0

Получил некоторую помощь от группы тусов Ace. Не стесняйтесь попробовать код ниже, чтобы узнать, работает ли он на вас. –

ответ

9

I posted на асе Google Group (+ представитель в Арутюн) и получил ответ со следующим кодом:

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 (хром-плагин может быть приятным!), Хорошо видно).

Update


Я написал небольшой Chrome Extension, что позволяет Vim привязок на большинстве сайтов Ace.js и CodeMirror. Вопросы и взносы приветствуются в github repo

+0

спасибо ник! на gists это работает для меня ... но NB это терпит неудачу на github.com собственно. – jdar

23

В последней версии асе (v1.1.1), VIM и Emacs переплеты приходят встроенные в следующие работы:.

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

+1 спасибо за обновление. Гисты по-прежнему используют старую версию Ace (по состоянию на декабрь 2013 года), но отлично подходят для сайтов, использующих новую версию. –

+1

ПРИМЕЧАНИЕ: Это работает, но Ace теперь поддерживает несколько редакторов на странице, поэтому вы не найдете глобальный объект для уникального «редактора» Do: 'editors [0] .setKeyboardHandler (" ace/keyboard/vim "); ' – pixelpax

+0

Похоже, что для возврата к режиму по умолчанию это работает:' editor.setKeyboardHandler (""); ' –

1

я не смог получить другие два решения для работы. (Расширение Chrome для Chrome все еще отлично работает для меня.)

Другим решением является изменение режима vim в меню настроек.

Чтобы получить доступ к меню настроек, убедитесь, что редактор ACE имеет фокус, и нажмите ctrl + , (Control and Comma).

Это откроет меню в правой части экрана. Найдите раскрывающийся список «Обработчик клавиатуры» и выберите vim. Нажмите escape или щелкните где-нибудь вне меню настроек, чтобы закрыть его.

vim режим должен быть активирован.