2013-07-13 7 views
5

ich auf einer Implementierung von Ace Editor gerade arbeite und Ctrl +F funktioniert gut für den integrierten „Suchen“ Dialog, aber ich versuche zu finden die Ctrl ein Weg+ H für Ctrl + R und Standardverhalten zu ändern, um zu verhindern.Ace Editor - Ändern Sie CTRL + H Tastenbelegung

Ich habe über Dokumente und Foren über die Arbeit mit den Tastenbelegungen geschaut, aber ich kann nicht identifizieren, welche Methode aufgerufen wird, um den "Ersetzen" -Dialog zu instanziieren oder zu überschreiben.

Antwort

12

Der Ersetzungsbefehl ist definiert here. ist es möglich, den folgenden Code zu verwenden Ctrl +H für Ctrl

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

aber der Teil mit inneren Befehl + R ist ziemlich hässlich zu ändern, würde ich ein Problem machen vorschlagen, auf ace Repository entweder normalen Namen für sie zu verwenden, oder

+0

Nur zur Kenntnis - es funktioniert nicht @ Today. –

0

automatisch replace Befehle Schlüssel abholen Dieser arbeitete für mich:

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