Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何以编程方式将Ace(vim键盘布局)置于插入模式_Javascript_Ace Editor - Fatal编程技术网

Javascript 如何以编程方式将Ace(vim键盘布局)置于插入模式

Javascript 如何以编程方式将Ace(vim键盘布局)置于插入模式,javascript,ace-editor,Javascript,Ace Editor,我正在使用ace和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 mod

我正在使用ace和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
操作?我无法访问此操作所需的
操作
对象


或者:如何向ace发送一个
I
-keypress,以启动插入模式?

似乎没有任何官方api来执行此操作,但使用以下任一操作都可以与当前版本的ace配合使用:

 editor.onTextInput("i");


谢谢!我测试了这两个选项,它们都正常工作,使用您的最后一个选项,您可以发送任意选项。
 var cm = editor.state.cm;
 editor.$vimModeHandler.actions.enterInsertMode(cm, {}, cm.state.vim);