我正在使用codemirror实现“查找并更正”功能。我知道搜索和替换有一个插件,但它不符合我的要求。编辑器用于编写特定查询。它在
中创建了跨度 <pre>
<span class="cm-field">field</span>:jet <span class="cm-other-operator active" >adj3</span> engine <span class="cm-operator">OR</span> jet <span class="cm-other-operator" >near5</span> engine
</pre>
请参考快照。 如果我点击任何一个操作员(橙色),光标开始闪烁,功能正常。点击查找下一个按钮,我可以找到相应的跨度,但无法在那里设置光标。那么如何在那里设置光标位置。提前致谢。
答案 0 :(得分:7)
在设置光标位置之前,您必须专注于编辑器。
editor.focus()
然后就像@djadmin所说你会用doc.setCursor(pos: {line, ch})
设置光标位置。
editor.setCursor({line: 1, ch: 5})
这是一个你可以玩的小编织。 http://kodeweave.sourceforge.net/editor/#b9a99b76536392cb5ec5004bc37b8fcc
答案 1 :(得分:2)
如果安装了游标,但仅在行开头:0,符号:0,这意味着仅触发了焦点,因为setValue被延迟,因此将SetCursor包裹在SetTimeOut中,延迟为0并享受=)< / p>
codeEditor.setValue (code);
setTimeout (() => {
codeEditor.focus();
codeEditor.setCursor({
line: 3,
ch: 10,
});
}, 0);