Ace编辑器,如何删除除一个以外的所有keyBindings?

爱丽达人的

我最近在我的jsp页面上有一个textarea

为此,我在键盘上有自己的快捷键

然后,我实现了 ace 编辑器,然后我所有的旧键绑定都不起作用

然后我搜索了一段时间,并找到以下代码:

    //I did this before, to add the ace editor
    var editor = ace.edit("fileInfo");
    var JavaScriptMode = ace.require("ace/mode/javascript").Mode;
    editor.session.setMode(new JavaScriptMode()); 

   //Then I found this for the keyBindings
    delete editor.keyBinding;

最后一行禁用了ace编辑器中的所有keyBindings,并且我自己的keyBindings可以正常工作。。。一切都很好,但是随后,我对ace编辑器进行了很多搜索,找到了一个有趣的选项,然后是那个我喜欢使用的keyBinding,那就是DELETE ROW键绑定Ctrl + D

我现在想找回它,但只有它,而不是其他,而且我的旧keyBindings也应该起作用...

我的旧keyBindings的代码如下所示:

document.addEventListener("keydown", function(e) {
            // Ctrl + S = SAVE
            if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey))      {
                e.preventDefault();
                e.stopPropagation();
                if($scope.mode!='BROWSE')
                {
                    $('#saveBtn').trigger("click");
                }
            }
}, false);

你能帮我吗?

马赫·法图赫(Maher Fattouh)

delete editor.keyBinding; 这不是一个好的解决方案,它将在控制台中产生错误消息

未捕获到的TypeError:无法在KeyBinding.onCommandKey(ace.js:4113)处的KeyBinding。$ callKeyboardHandlers(ace.js:4081)处的CommandManager.handleKeyboard(ace.js:10830)处读取未定义的属性'ctrl-d'。 HTMLTextAreaElement上的normalizeCommandKeys(ace.js:1648)上的onCommandKey(ace.js:12424)。(ace.js:1667)

选项1:删除所有绑定,然后重新定义我们需要的绑定。

//safely delete all bindings
editor.keyBinding.$defaultHandler.commandKeyBinding = {}
//bind the wanted command
editor.commands.addCommand({
    name: "removeline",
    bindKey: { win: "Ctrl-D", mac: "Command-D" },
    exec: function(editor) { editor.removeLines(); },
    scrollIntoView: "cursor",
    multiSelectAction: "forEachLine"
});

现在已经定义了命令,可以根据需要从自己的代码中调用它:

editor.execCommand("removeline")

选项2:实际上是遍历绑定。

使用for (key in obj)循环通过键绑定和删除不等于键ctrl-dcommand-d

for (key in editor.keyBinding.$defaultHandler.commandKeyBinding) {
    if (key !== "ctrl-d" && key !== "command-d")
        delete editor.keyBinding.$defaultHandler.commandKeyBinding[key]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用shell脚本删除除每行的第一个逗号以外的所有逗号

来自分类Dev

如何尾除除一个以外的所有文件

来自分类Dev

为什么ace编辑器加载所有高亮显示的文本,以及如何将其删除?

来自分类Dev

如何用php删除文件夹中除一个以外的所有文件?

来自分类Dev

删除除最后一个使用XSLT以外的所有子节点

来自分类Dev

如何在Visual Studio 2013中隐藏除编辑器窗口以外的所有窗口?

来自分类Dev

删除除第一个节点以外的所有子节点

来自分类Dev

如何删除除一个以外的所有切换?

来自分类Dev

如何从分支中删除除最后一个x以外的所有提交?

来自分类Dev

如何从当前片段中删除除当前片段和第一个片段以外的所有先前片段?

来自分类Dev

删除除包含一个点的行以外的所有行

来自分类Dev

删除除一个以外的所有文件夹

来自分类Dev

如何删除除一个以外的所有Azure资源组

来自分类Dev

Powershell删除除一个以外的所有文件夹

来自分类Dev

jQuery:如何从元素中删除除最后一个类以外的所有类

来自分类Dev

使用shell脚本删除除每行的第一个逗号以外的所有逗号

来自分类Dev

如何使用react在ace编辑器中删除所有现有的突出显示标记

来自分类Dev

用rm删除除一个以外的所有文件

来自分类Dev

如何从bash脚本中使用unix ed编辑器删除除最后一行以外的所有行

来自分类Dev

删除除一个以外的所有.log文件

来自分类Dev

删除除一个SharedPreference以外的所有内容

来自分类Dev

从StackPanel中删除除第一个项目以外的所有项目?

来自分类Dev

当我单击另一个文件时,如何在ace编辑器中更改内容?

来自分类Dev

如何删除目录中除Solaris中的一个文件以外的所有文件

来自分类Dev

如何在Visual Studio 2013中隐藏除编辑器窗口以外的所有窗口?

来自分类Dev

如何列出带有最后一个编辑器和日期的github存储库中的所有文件?

来自分类Dev

AS-翻译编辑器-如何一次删除所有语言的字符串?

来自分类Dev

如何防止浏览器覆盖我的ace编辑器的keyBindings?

来自分类Dev

如何删除除一个之外的所有控件?

Related 相关文章

  1. 1

    使用shell脚本删除除每行的第一个逗号以外的所有逗号

  2. 2

    如何尾除除一个以外的所有文件

  3. 3

    为什么ace编辑器加载所有高亮显示的文本,以及如何将其删除?

  4. 4

    如何用php删除文件夹中除一个以外的所有文件?

  5. 5

    删除除最后一个使用XSLT以外的所有子节点

  6. 6

    如何在Visual Studio 2013中隐藏除编辑器窗口以外的所有窗口?

  7. 7

    删除除第一个节点以外的所有子节点

  8. 8

    如何删除除一个以外的所有切换?

  9. 9

    如何从分支中删除除最后一个x以外的所有提交?

  10. 10

    如何从当前片段中删除除当前片段和第一个片段以外的所有先前片段?

  11. 11

    删除除包含一个点的行以外的所有行

  12. 12

    删除除一个以外的所有文件夹

  13. 13

    如何删除除一个以外的所有Azure资源组

  14. 14

    Powershell删除除一个以外的所有文件夹

  15. 15

    jQuery:如何从元素中删除除最后一个类以外的所有类

  16. 16

    使用shell脚本删除除每行的第一个逗号以外的所有逗号

  17. 17

    如何使用react在ace编辑器中删除所有现有的突出显示标记

  18. 18

    用rm删除除一个以外的所有文件

  19. 19

    如何从bash脚本中使用unix ed编辑器删除除最后一行以外的所有行

  20. 20

    删除除一个以外的所有.log文件

  21. 21

    删除除一个SharedPreference以外的所有内容

  22. 22

    从StackPanel中删除除第一个项目以外的所有项目?

  23. 23

    当我单击另一个文件时,如何在ace编辑器中更改内容?

  24. 24

    如何删除目录中除Solaris中的一个文件以外的所有文件

  25. 25

    如何在Visual Studio 2013中隐藏除编辑器窗口以外的所有窗口?

  26. 26

    如何列出带有最后一个编辑器和日期的github存储库中的所有文件?

  27. 27

    AS-翻译编辑器-如何一次删除所有语言的字符串?

  28. 28

    如何防止浏览器覆盖我的ace编辑器的keyBindings?

  29. 29

    如何删除除一个之外的所有控件?

热门标签

归档