如何在 Ace 编辑器中启用搜索框?

How can I enable the Search Box in an Ace Editor?

Whosebug 社区大家好,这是我的第一个问题,我想知道如何在 Ace 编辑器中启用搜索框。

我有项目的当前演示 here。到目前为止,编辑器有 Emmet 和自动完成功能。我需要的下一个功能是当用户在编辑器中按下 CTRL+F 时显示的搜索框。

这是我用来配置编辑器的代码:

let e = document.querySelector("#editor");
let editor = ace.edit(e);
let langTools = ace.require("ace/ext/language_tools");
let Emmet = require("ace/ext/emmet");
ace.config.set("basePath", "path");
ace.config.loadModule("ace/ext/searchbox", function(m) {m.Search(editor)});


editor.getSession().setMode("ace/mode/html");
editor.setOptions({
    minLines: 24,
    maxLines: 24,
    enableBasicAutocompletion: true,
    enableSnippets: true,
    enableLiveAutocompletion: true,
    enableEmmet: true
});
editor.session.setUseWrapMode(true);
editor.session.on("change", function () {
    window.onbeforeunload = function () {
        return "Changes you made might not be saved";
    };
    var unloadListener = function () {
        return "Changes you made might not be saved";
    };
    window.addEventListener("beforeunload", unloadListener);
    editor.execCommand("find")
});

谁能帮我弄清楚要导入哪些脚本以及如何启用它? 谢谢

它应该内置在标准版本中。

editor.execCommand('find');

应该显示搜索框。您也可以使用

editor.searchBox.show();
editor.searchBox.hide();

手动显示它(即实现您自己的键绑定)。 Ace 内置了键绑定,使用它们有优点(也有缺点,例如它们仅在您专注于编辑器时才有效)。如果您要实现自己的命令,则应禁用内部“查找”命令。