如何重置Codemirror编辑器?

13
我想重置Codemirror编辑器的所有内容。理想情况下,这应该清除文本区域,删除所有标记并清除历史记录。
最好的方法是什么?

2
销毁实例并创建一个新的吗? - Eliran Malka
5个回答

21
cm.setValue("");
cm.clearHistory();
// cm.clearGutter("gutterId"); if you have gutters

4
您可以在CodeMirror 6版本中使用EditorView的dispatch函数:
 let view = new EditorView();
view.dispatch({
        changes: {from: 0, to: view.state.doc.toString().length, insert:''}
      })

这段代码会覆盖视图的当前内容。这是一个简短的例子。通常您的视图具有初始化参数,我已经阅读过了。


2
可以的。这个答案应该被接受,因为它适用于第6版。 - adamsko
1
可以工作。这应该是被接受的答案,因为它适用于6版本。 - adamsko

3
此外,执行cm.setValue(newValue)只是设置编辑器的内容而不会删除CM实例。文档

2
var codemirror = $('#YOUR_TEXTAREA_ID').nextAll('.CodeMirror')[0].CodeMirror;
codemirror.getDoc().setValue("");

1
如果您不想杀死CodeMirror实例,只需更改保存文本、标记数据等的整个文档即可。这可以通过调用cm.swapDoc(doc: CodeMirror.Doc)来完成。

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