30 框架

一个 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 多终端

Function: framep object

该谓词函数在 object 为框架时返回非 nil 值, 否则返回 nil。对于框架,返回值表示该框架所使用的显示类型:

t

该框架显示在文本终端上。

x

该框架显示在 X 图形终端上。

w32

该框架显示在 MS-Windows 图形终端上。

ns

该框架显示在 GNUstep 或 Macintosh Cocoa 图形终端上。

pc

该框架显示在 MS-DOS 终端上。

haiku

该框架使用 Haiku 应用程序工具包显示。

pgtk

该框架使用纯 GTK 设施显示。

android

该框架显示在 Android 设备上。

Function: frame-terminal &optional frame

该函数返回显示 frame 的终端对象。 如果 framenil 或未指定,则默认为当前选中框架。

Function: terminal-live-p object

该谓词函数在 object 为可用(即未被删除)终端时返回非 nil 值, 否则返回 nil。对于可用终端,返回值表示该终端上显示的框架类型; 可能的取值列表与上述 framep 相同。

在图形终端上,我们区分两种类型的框架:普通的 top-level frame 顶层框架(top-level frame) 是指其窗口系统窗口为该终端 窗口系统根窗口子窗口的框架。子框架是指其窗口系统窗口 为另一个 Emacs 框架的窗口系统窗口之子窗口的框架。See 子框架