2013-07-13 2 views
5

Je travaille sur une mise en œuvre de Ace Editor et Ctrl +F fonctionne très bien pour la boîte de dialogue intégré « Rechercher », mais je suis en train de trouver un moyen pour changer le Ctrl + H pour Ctrl +R et empêcher un comportement par défaut. J'ai regardé des docs et des forums sur le travail avec les keybindings mais je ne peux pas identifier quelle méthode est appelée pour instancier la boîte de dialogue 'replace' ou comment l'écraser.Ace Editor - Changer CTRL + H raccourci clavier

Répondre

12

La commande de remplacement est définie here. il est possible d'utiliser le code suivant pour changer Ctrl +H pour 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) 
      } 
     }); 
    } 
}); 

mais la partie avec la commande intérieure est assez laide, je vous suggère de faire un problème le dépôt ace soit d'utiliser le nom normal, ou ramasser replace commandes clé automatiquement

+0

Juste pour la note - il ne fonctionne pas @today. –

0

Cela a fonctionné pour moi:

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 
});