将制表符插入 SlateJS 文本编辑器

Insert tab character into SlateJS text editor

如何在SlateJS中插入制表符?

因此插入   是一个制表符,但是,当将其作为文本插入时,它显示为文字字符   而不是具有制表符间距的文本。

// Don't work, inserts literal characters
const insertText = (editor, format) => {
    Editor.insertText(editor, ` ')
}

有什么简单的方法可以插入   并让 Slatejs 将其识别为 html 而不是纯文本?

根据我的粗略理解,可能需要在插入之前进行序列化和反序列化html。甚至可以插入包含间距的 <pre> </pre> 块。

我突然想到我可以插入 4 个 space 而不是制表符...虽然这并不完美,但您必须返回 space 4 次而不是一次时间像标签。

const insertText = (editor, format) => {
    Editor.insertText(editor, '    ')
}

也可以在插入文本中插入制表符 space 字符,例如 the tabs in this article,不能复制粘贴它们的制表符,因为 SO 会将其变成 spaces。似乎工作得很好,功能上是一个选项卡 space。