我正在开发 Ace Editor 的实现,而 Ctrl + F 非常适合内置的“查找”对话框,但我正试图找到一种方法来改变 Ctrl + H Ctrl + R 并防止默认行为。
我查看了有关使用键绑定的文档和论坛,但我无法确定调用什么方法来实例化“替换”对话框或如何覆盖它。
答案 0 :(得分:12)
替换命令已定义为here。可以使用以下代码更改 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
命令键
答案 1 :(得分:0)
这对我有用:
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
});