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

如何获取Monaco Editor中光标的绝对索引位置?

Monaco Editor 获取光标绝对索引并插入标记文本

要获取光标在文本中的绝对索引位置并插入_CURSOR_,可以借助Monaco Editor模型的getOffsetAt方法,具体操作如下:

  • 通过editor.getPosition()获取光标所在的行列位置对象
  • 调用编辑器模型的getOffsetAt方法,将行列位置转换为文本的绝对偏移索引
  • 用得到的索引分割原文本,插入目标标记

完整代码示例:

let editor = /* 你的Monaco Editor实例 */;

// 获取编辑器文本
let text = editor.getValue();

// 获取光标位置并转换为绝对索引
let cursorPosition = editor.getPosition();
let indexPos = editor.getModel().getOffsetAt(cursorPosition);

// 在光标位置插入标记文本
text = text.substring(0, indexPos) + '_CURSOR_' + text.substring(indexPos);

说明

getOffsetAt方法会自动处理不同换行符(LF/CRLF)的差异,准确计算出光标在整个文本字符串中的绝对偏移位置,无需手动处理换行符的长度问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:52:06