Ace编辑器 - 更改CTRL + H键绑定

时间:2013-07-13 19:07:13

标签: key-bindings ace-editor

我正在开发 Ace Editor 的实现,而 Ctrl + F 非常适合内置的“查找”对话框,但我正试图找到一种方法来改变 Ctrl + H Ctrl + R 并防止默认行为。

我查看了有关使用键绑定的文档和论坛,但我无法确定调用什么方法来实例化“替换”对话框或如何覆盖它。

2 个答案:

答案 0 :(得分:12)

替换命令已定义为here。可以使用以下代码更改 Ctrl + H Ctrl + R

editor.commands.addCommand({
    name: "replace",
    bindKey: {win: "Ctrl-R", mac: "Command-Option-F"},
    exec: function(editor) {
        require("ace/config").loadModule("ace/ext/searchbox", function(e) {
             e.Search(editor, true)  
             // take care of keybinding inside searchbox           
             // this is too hacky :(             
             var kb = editor.searchBox.$searchBarKb
             command = kb.commandKeyBinding["ctrl-h"]
             if (command && command.bindKey.indexOf("Ctrl-R") == -1) {
                 command.bindKey += "|Ctrl-R"
                 kb.addCommand(command)
             }
         });
    }
});

但是内部命令的部分非常难看,我建议在ace存储库上使用普通名称,或者自动选择replace命令键

答案 1 :(得分:0)

这对我有用:

editor.commands.addCommand({
name: 'replace',
bindKey: {win: 'Ctrl-R', mac: 'Command-Option-F'},
exec: function(editor) {
ace.config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor, true)});
},
readOnly: true
});