Drawpile 中文文档 下载 App

强制撤销他人操作 — 擦除恶意或误操作的安全网

Force Undo 是什么

Drawpile 的 Force Undo(以及 Force Redo)是 Operator 专属功能——可以撤销或重做任意用户的最近操作。

这是 Drawpile 多人协作安全性的核心设计之一:

怎么用

方式一:用户列表菜单

聊天窗口旁边的用户列表,点用户名旁的三点菜单:

方式二:右键菜单

直接在用户列表里右键点用户名(桌面端),弹出相同菜单。

快捷键

Force Undo 默认快捷键是 Ctrl+Shift+Z(注意:普通 Undo 是 Ctrl+Z,普通 Redo 是 Ctrl+Y)。但快捷键是撤销你自己的操作,不是撤销别人的。要撤销别人的还是得用菜单方式。

撤销范围

Force Undo 按操作为单位——每一笔笔触、每一个图层操作(新建、删除、重命名、合并)都是一个独立操作。你可以一笔一笔撤销。

Force Undo 有数量限制——默认能撤销该用户最近约 50-100 次操作(取决于服务器内存)。超过这个范围就只能靠 Session Reset 了。

和普通 Undo 的区别

维度普通 Undo(Ctrl+Z)Force Undo
谁能触发所有人(只要没被 Lock)只有 Operator
撤销谁的自己的操作任意用户的操作
不受对方影响—对方关了 Undo 历史也不影响
撤销方式逐笔或批量只能逐笔

典型场景

场景一:别人不小心合错了图层

  1. 用户 A 误操作把他的上色图层合并到了不该合并的线稿层里
  2. 聊天里惊呼"啊我犯蠢了"
  3. 你作为 Operator,Force Undo A 一次 → 合并操作被撤销,两个图层恢复独立

场景二:griefer 涂了满画布

  1. Canvas Lock 先锁住整个画布(按 F12)
  2. 找到这个用户,Lock 他 → Kick → Ban
  3. Force Undo 他 20 次(或更多),每按一次撤销一笔恶意笔触
  4. 或者直接 Session Reset 回退一个快照(更高效但影响所有人)

场景三:多人协作中撤回自己的笔误

自己的笔误用普通 Undo 就行。但如果普通 Undo 被服务器延迟卡住(见 Undo 延迟),Operator 可以用 Force Redo / Force Undo 帮其他人还原。

技术说明

Force Undo 不是魔法——它操作的是服务器端的完整操作历史。Drawpile 服务器保存了会话的所有操作记录(所有用户的所有笔触、图层操作等),Force Undo 只是告诉服务器"把这个用户的最后一条操作标记为已撤销"。

这就是为什么快照数量、会话历史长度影响 Force Undo 的可用范围——操作越久远,可能已经被服务器清理掉了。