Как программно перевести Ace (раскладка клавиатуры vim) в режим вставки - PullRequest
0 голосов
/ 11 ноября 2018

Я использую туз с раскладкой клавиатуры vim. Мой JavaScript

    this.editor = window.ace.edit(this.$el.id)
    ace.config.loadModule("ace/keyboard/vim", function(m) {
        var VimApi = ace.require("ace/keyboard/vim").CodeMirror.Vim
        //here: put editor in insertion mode :startinsert
        VimApi.defineEx("write", "w", function(cm, input) {
            //cm.ace.execCommand("save");
            console.log("My command :w triggered");
        })
    })

Как перевести vim в режим вставки?

Или иначе: как мне запустить действие enterInsertMode, определенное в https://github.com/ajaxorg/ace/blob/master/lib/ace/keyboard/vim.js#L3032? Я не могу получить доступ к actions объекту, необходимому для этого.

Или: как мне отправить i -кнопку на туз, чтобы запустить режим вставки?

1 Ответ

0 голосов
/ 11 ноября 2018

Официальных API для этого, похоже, не существует, но с текущей версией ace работает любой из следующих способов:

 editor.onTextInput("i");

или

 var cm = editor.state.cm;
 editor.$vimModeHandler.actions.enterInsertMode(cm, {}, cm.state.vim);
...