2013-07-13 24 views
5

Sto lavorando a un'implementazione di Ace Editor e Ctrl +F grandi opere per il built-in "Trova" di dialogo, ma sto cercando di trovare un modo per cambiare il Ctrl + H per Ctrl +R e prevenire comportamento predefinito.Ace Editor - Cambia CTRL + H keybinding

Ho esaminato documenti e forum su come lavorare con le associazioni di tasti, ma non riesco a identificare quale metodo viene chiamato per creare un'istanza della finestra di dialogo 'replace' o su come sovrascriverlo.

risposta

12

Il comando di sostituzione è definito here. è possibile utilizzare il seguente codice per modificare Ctrl +H per 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) 
      } 
     }); 
    } 
}); 

ma la parte con il comando interna è abbastanza brutto, io suggerirei di fare un problema sul repository ace a uno utilizzare il nome normale per esso, o prendere replace comandi chiave automaticamente

+0

Solo per nota - non funziona @oggi. –

0

Questo ha funzionato per me:

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