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

Iro*_*Dev 9 javascript ace-editor

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

我这里有该项目的当前演示。到目前为止,编辑器有 Emmet 和 Autocomplete。我需要的下一个功能是当用户在编辑器中按 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")
});

Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄清楚要导入哪些脚本以及如何启用它吗?谢谢。

Dan*_*ial 6

它应该构建到标准构建中。

editor.execCommand('find');
Run Code Online (Sandbox Code Playgroud)

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

editor.searchBox.show();
editor.searchBox.hide();
Run Code Online (Sandbox Code Playgroud)

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