Contribute to this guide

指南撤销/重做

撤销功能允许您撤回对内容的最近更改,以及将它们恢复。您也可以选择性地撤回过去的更改,而不仅仅是最新的更改。

# 演示

使用下面的演示来尝试撤销和重做机制。修改内容。尝试引入一些更改,然后使用工具栏按钮撤销 撤销 或重做 重做 它们。

或者,可以使用众所周知的键盘快捷键 Ctrl + Z (在 Mac 上为 Cmd + Z)进行撤销。要重做,可以使用 Ctrl + YCtrl + Shift + Z (在 Mac 上分别使用 Cmd)。

柴油机车真的很有用!

Diesel locomotives waiting at a small freight station.
柴油机车停放在一个小型的货运车站。

柴油机车是指使用柴油发动机作为主要动力来源来移动和牵引车厢的机车。

柴油机车在今天非常流行,可以在所有大陆看到它们工作(除了南极洲,那里的铁路网络相当稀疏)。柴油发动机功能强大,不需要像它们那些年轻的兄弟——电力机车——那样需要额外的技术基础设施,因此非常适合大多数类型的任务。

柴油发动机可以牵引客运列车、装有货物的货车、油罐车、装载木头的平台车等等。如果条件恶劣或货物太重,无法由一台柴油机车单独牵引,可以使用两台发动机。有时你甚至可以看到三到四台发动机,如果工作要求特别高的话。

如今,大多数国家和私人铁路公司拥有或租赁大量的柴油发动机。从用于在火车站机动的小巧灵活的机车,到用于跨大陆运输的大型笨重的机器,种类繁多。

柴油发动机也有各种形状和颜色,组成了一个快乐而实用的群体。

此演示仅展示了一组有限的功能。访问 功能丰富的编辑器示例 以查看更多实际操作。

# 其他功能信息

撤销功能的所有操作都将被记录并整理成批次,以便稍后可以轻松撤销或重做。由于采用了这种方法,该功能可以有选择地撤回过去的更改,而不仅仅是最新的更改。这允许处理诸如图片上传之类的异步操作,而不会阻止用户同时编辑文档。

选择性撤销在 实时协作 环境中得到了广泛应用。在这种情况下,特定用户应该只能撤回自己的更改,而保持其他用户所做的更改不变(除非存在编辑冲突)。通过省略某些更改并向下遍历堆栈,可以仅撤回选择的更改。

该功能支持工具栏按钮和 键盘快捷键,以便于便捷操作。

# 安装

⚠️ 新的导入路径

版本 42.0.0 开始,我们更改了导入路径的格式。本指南使用新的、更短的格式。如果您使用的是旧版本的 CKEditor 5,请参考 旧版设置中的包 指南。

安装编辑器 后,将该功能添加到您的插件列表和工具栏配置中

import { ClassicEditor, Undo } from 'ckeditor5';

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        // Load the plugin.
        plugins: [ Undo, /* ... */ ],

        // Display the "Undo" and "Redo" buttons in the toolbar.
        toolbar: [ 'undo', 'redo', /* ... */ ],
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

阅读有关 安装插件工具栏配置 的更多信息。

# 通用 API

撤销” 插件是一个“粘合”插件,它加载 UndoEditing 引擎和 UndoUI 功能。

UndoEditing 功能注册以下命令

  • UndoCommand 可以通过编程方式调用为 undo,用于从批处理中检索编辑器历史记录。

    editor.execute( 'undo');
    

    您可以使用它从最新批处理或以前的一些批处理(例如,在协作环境中选定用户进行的更改)中检索更改。

    editor.execute( 'undo', batchToUndo );
    
  • RedoCommand 用于从批处理中恢复撤销状态,并称为 redo

    editor.execute( 'redo');
    

UndoUI 功能在编辑器工具栏中引入了 undoredo 按钮。

我们建议您在开发和调试时使用官方的 CKEditor 5 检查器。它将为您提供有关编辑器状态的大量有用信息,例如内部数据结构、选择、命令等等。

# 贡献

该功能的源代码可在 GitHub 上获取:https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-undo