如何在Codemirror编辑器中设置光标位置

14

我正在使用codemirror实现“查找和更正”功能。我知道有一个用于搜索和替换的插件,但它不能满足我的需求。编辑器是为编写特定查询而设计的。它在

中创建了spans。

<pre> <span class="cm-field">字段</span>:jet <span class="cm-other-operator active" >adj3</span> 引擎 <span class="cm-operator">OR</span> jet <span class="cm-other-operator" >near5</span> 引擎 </pre>

请参考快照。 如果我单击任何运算符(橙色),光标就会闪烁,功能也在起作用。单击查找下一个按钮后,我能够找到相应的span,但无法将光标设置在那里。那么如何在那里设置光标位置呢?谢谢。

输入图像描述


你可以使用doc.setCursor(pos: {line, ch})将光标设置到任何特定位置。 - djadmin
在 CodeMirror 6 中,光标位置是一个单独的数字:editor.dispatch({selection: {anchor: N, head: N}})。https://discuss.codemirror.net/t/set-cursor-position-in-v6/4476 - user3064538
3个回答

26

你能说明一下行和列是否是从0还是1开始计数的吗? - Clashsoft
CodeMirror 6 上没有这个函数。 - user3064538

2
如果您的光标已安装,但仅位于行首:0,符号:0,则意味着仅触发了焦点,因为setValue被延迟了,将您的SetCursor包装在0延迟的SetTimeOut中即可享受=)

       codeEditor.setValue (code);

       setTimeout (() => {
           codeEditor.focus();
           codeEditor.setCursor({
             line: 3,
             ch: 10,
           });
       }, 0);


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接