You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Web版Monaco Editor中通过编程设置替换文本字段?

解决方案

Monaco Editor的查找替换面板状态由内部的findController管理,直接调用打开面板的action无法预设替换文本,需要通过操作这个控制器来实现。

以下是修改后的完整代码:

const value = `function hello() {
    alert('Hello world!');
}`;
const textToSearch = 'hello';
const textReplaceWith = 'world';

const myEditor = monaco.editor.create(document.getElementById("container"), {
    value,
    language: "javascript",
    automaticLayout: true,
});

// 获取查找功能控制器
const findController = myEditor.getContribution('editor.contrib.findController');

// 设置查找框参数
findController.setFindQuery({
    searchString: textToSearch,
    isRegex: false,
    isCaseSensitive: false,
    isWholeWord: false
});

// 设置替换框文本
findController.setReplaceQuery({
    replaceString: textReplaceWith
});

// 打开查找替换面板
myEditor.getAction('editor.action.startFindReplaceAction').run();

关键说明

  • getContribution('editor.contrib.findController'):获取编辑器负责管理查找替换状态的核心控制器,所有面板输入框的内容都由它维护。
  • setFindQuery:不仅可以预设查找文本,还能配置匹配规则(如是否正则、大小写敏感等),如果不需要选区定位逻辑,甚至可以省略手动选中文本的代码,直接用这个方法预设查找内容。
  • setReplaceQuery:这是填充替换文本字段的关键方法,传入包含replaceString的对象即可完成预设。

如果需要保留选区定位的逻辑,只需将原有选区相关代码保留即可,不会影响预设字段的功能。

内容的提问来源于stack exchange,提问作者scott6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:22:07