Ace Editor — изменить сочетание клавиш CTRL+H

Я работаю над реализацией Ace Editor, и Ctrl+F прекрасно работает со встроенным диалоговым окном «Найти», однако я Я пытаюсь найти способ заменить Ctrl+H на Ctrl+R и предотвратить поведение по умолчанию.

Я просмотрел документы и форумы о работе с сочетаниями клавиш, но не могу определить, какой метод вызывается для создания экземпляра диалогового окна «заменить» или как его перезаписать.


person Fluidbyte    schedule 13.07.2013    source источник


Ответы (2)


Команда замены определяется здесь. можно использовать следующий код для замены 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 commands

person a user    schedule 14.07.2013

Это сработало для меня:

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
});
person Jahid    schedule 01.06.2015