如何在Codemirror编辑器

时间:2015-10-28 15:16:32

标签: javascript codemirror cursor-position

我正在使用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>

请参考快照。 如果我点击任何一个操作员(橙色),光标开始闪烁,功能正常。点击查找下一个按钮,我可以找到相应的跨度,但无法在那里设置光标。那么如何在那里设置光标位置。提前致谢。 enter image description here

2 个答案:

答案 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);