活动框架(live frame)指尚未被删除的框架。框架被删除后会从所属终端显示中移除,但作为 Lisp 对象可能继续存在,直到不再被任何地方引用。
该函数删除框架 frame。参数 frame 必须为活动框架(见下文),默认为选中框架。
它会先删除 frame 的所有子框架(see 子框架)以及所有 delete-before 框架参数(see 框架交互参数)指向 frame 的框架。所有删除操作递归执行,确保不存在以 frame 为祖先的其他框架。
之后,除非 frame 是提示框框架,该函数会在实际销毁框架前运行钩子 delete-frame-functions(每个函数接收一个参数 frame)。在实际销毁框架并将其从框架列表移除后,delete-frame 会运行 after-delete-frame-functions。
注意:只要框架的迷你缓冲区仍作为其他框架的代理迷你缓冲区使用,该框架就无法被删除(see 迷你缓冲区与框架)。
通常情况下,若所有其他框架均不可见,则无法删除该框架;但 force 非 nil 时允许执行此操作。
部分窗口管理器提供删除窗口的命令,通过向窗口所属程序发送特定消息实现。Emacs 收到此类命令时会生成 delete-frame 事件,其默认绑定为调用 delete-frame 函数的命令。See 其他系统事件。