2013-07-13 4 views
5

키 바인딩 변경 방법이 Ctrl 키 + R에 대한 HCtrl 키 + 을 변경하고 기본 동작을 방지합니다.에이스 편집기 - 대화, 그러나 나는 찾을려고 CTRL + H는</em> 및 <kbd>Ctrl 키</kbd>가 + <kbd>F</kbd>가 내장 된 "찾기"를위한 위대한 작품을 내가 <em>에이스 편집기의 구현에 일하고 있어요

키 바인딩 작업에 대해 문서 및 포럼을 살펴 봤지만 '대체'대화 상자를 인스턴스화하거나 덮어 쓰는 방법을 알려주는 메소드를 식별 할 수 없습니다.

답변

12

대체 명령은 here으로 정의됩니다.가 + 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) 
      } 
     }); 
    } 
}); 

하지만 내부 명령 부분은 아주 못생긴, 난 문제를 만들기 위해 좋을 것 에 대한 Ctrl 키를 Ctrl 키 + H을 변경하려면 다음 코드를 사용할 수있다

+0

참고 용으로 - 오늘은 작동하지 않습니다. –

0

그것을 정상적인 이름을 사용하거나 자동으로 replace 명령 키를 선택하거나 에이스 저장소에이 나를 ​​위해 일한 :

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