---
title: "撤销/重做扩展"
description: "轻松在您的 Tiptap 编辑器中撤销和重做更改，允许您恢复或重新应用编辑。更多内容见文档。"
canonical_url: "https://tiptap.zhcndoc.com/editor/extensions/functionality/undo-redo"
---

# 撤销/重做扩展

轻松在您的 Tiptap 编辑器中撤销和重做更改，允许您恢复或重新应用编辑。更多内容见文档。

此扩展提供撤销和重做支持。对文档的所有更改将被记录，并可以通过 `undo` 删除。被撤销的更改可以再次通过 `redo` 应用。

如果您不打算使编辑器具有协作功能，则应仅整合此扩展。协作扩展具有自己的撤销/重做支持，因为人们通常不希望撤销他人所做的更改。

> **Interactive demo:** [UndoRedo](https://embed.tiptap.dev/preview/Extensions/UndoRedo)

## 安装

```bash
npm install @tiptap/extensions
```

## 用法

```js
import { Editor } from '@tiptap/core'
import { UndoRedo } from '@tiptap/extensions'

new Editor({
  extensions: [UndoRedo],
})
```

## 设置

### depth

收集的历史事件数量，超过此数量后，最旧的事件将被丢弃。

默认值: `100`

```js
UndoRedo.configure({
  depth: 10,
})
```

### newGroupDelay

更改之间的延迟，在此之后应开始一个新组（以毫秒为单位）。当更改不相邻时，总是会开始一个新组。

默认值: `500`

```js
UndoRedo.configure({
  newGroupDelay: 1000,
})
```

## 命令

### undo()

撤销最后一次更改。

```js
editor.commands.undo()
```

### redo()

重做最后一次更改。

```js
editor.commands.redo()
```

## 快捷键

| 命令     | Windows/Linux                                           | macOS                                       |
| ------ | ------------------------------------------------------- | ------------------------------------------- |
| undo() | Control + Z 或 Control + я                               | Cmd + Z 或 Cmd + я                           |
| redo() | Shift + Control + Z 或 Control + Y 或 Shift + Control + я | Shift + Cmd + Z 或 Cmd + Y 或 Shift + Cmd + я |

## 源代码

[packages/extensions/src/undo-redo/](https://github.com/ueberdosis/tiptap/blob/main/packages/extensions/src/undo-redo/)

## 最小安装

```js
import { Editor } from '@tiptap/core'
import { UndoRedo } from '@tiptap/extensions/undo-redo'

new Editor({
  extensions: [UndoRedo],
})
```
