一个 frame(框架) 是一个屏幕对象,它包含一个或多个 Emacs 窗口(see Windows)。在图形环境的术语中,这类对象被称作“窗口”; 但在这里我们不能称其为“窗口”,因为 Emacs 对该词有不同的用法。 在 Emacs Lisp 中,一个 frame object(框架对象) 是表示屏幕上一个 框架的 Lisp 对象。See 框架类型。
一个框架初始时包含一个单独的主窗口和/或一个迷你缓冲区窗口; 你可以将主窗口垂直或水平分割为更小的窗口。See 拆分窗口。
一个 terminal(终端) 是能够显示一个或多个 Emacs 框架的显示设备。 在 Emacs Lisp 中,一个 terminal object(终端对象) 是表示一个终端 的 Lisp 对象。See 终端类型。
终端分为两类:text terminals(文本终端) 和
graphical terminals(图形终端)。文本终端是不具备图形能力的显示器,
包括 xterm 及其他终端模拟器。在文本终端上,每个 Emacs 框架
占据终端的整个屏幕;尽管你可以创建更多框架并在它们之间切换,
但终端同一时间只显示一个框架。而图形终端则由诸如 X Window System
之类的图形显示系统管理,允许 Emacs 在同一显示器上同时显示多个框架。
在 GNU 和类 Unix 系统上,你可以在单个 Emacs 会话中, 在任意可用终端上创建额外的框架,无论 Emacs 是启动于文本终端 还是图形终端。Emacs 可以同时在图形终端和文本终端上显示内容。 这在某些场景下非常方便,例如当你从多个远程位置连接到同一个会话时。 See 多终端。
该谓词函数在 object 为框架时返回非 nil 值,
否则返回 nil。对于框架,返回值表示该框架所使用的显示类型:
t该框架显示在文本终端上。
x该框架显示在 X 图形终端上。
w32该框架显示在 MS-Windows 图形终端上。
ns该框架显示在 GNUstep 或 Macintosh Cocoa 图形终端上。
pc该框架显示在 MS-DOS 终端上。
haiku该框架使用 Haiku 应用程序工具包显示。
pgtk该框架使用纯 GTK 设施显示。
android该框架显示在 Android 设备上。
该函数返回显示 frame 的终端对象。
如果 frame 为 nil 或未指定,则默认为当前选中框架。
该谓词函数在 object 为可用(即未被删除)终端时返回非 nil 值,
否则返回 nil。对于可用终端,返回值表示该终端上显示的框架类型;
可能的取值列表与上述 framep 相同。
在图形终端上,我们区分两种类型的框架:普通的 top-level frame 顶层框架(top-level frame) 是指其窗口系统窗口为该终端 窗口系统根窗口子窗口的框架。子框架是指其窗口系统窗口 为另一个 Emacs 框架的窗口系统窗口之子窗口的框架。See 子框架。