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

Ace Editor如何获取选中行?附可行实现代码

获取Ace Editor选中内容的首尾行号

如果你已经能通过editor.getSelectedText()拿到选中的文本,但需要对应行号的话,Ace Editor的selection API其实已经帮我们准备好了相关方法,不用自己去计算~

直接通过选区对象就能拿到起始和结束行:

// 获取所有选中的范围(单选区时取第一个元素即可)
var editorLines = editor.selection.getAllRanges();
// Ace的行号默认从0开始,加1转换成常用的1起始行号
var rowStart = editorLines[0].start.row + 1;
var rowEnd = editorLines[0].end.row + 1;

// 最终就能得到你想要的类似 {rowStart: 5, rowEnd: 12} 的结果
console.log(`rowStart: ${rowStart}, rowEnd: ${rowEnd}`);

补充说明

  • getAllRanges()会返回当前编辑器中所有的选中范围数组,如果你是多选区场景,可以遍历这个数组来获取每个选区的行号;
  • 如果你确定只有一个选区,直接取editorLines[0]就可以;
  • 代码里加1是因为Ace Editor内部的行索引是从0开始计数的,而我们日常使用习惯从1开始,如果你需要原生的0起始行号,去掉+1就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 22:18:10