Emacs 可适配多种窗口系统,最典型的是 X 窗口系统。 Emacs 与 X 均使用“窗口”这一术语,但含义不同。 对 X 而言,一个 Emacs 框架就是单个窗口;而 Emacs 内部的各个窗口对 X 完全不可见。
该终端局部变量告知 Lisp 程序 Emacs 用于显示框架的窗口系统。可能的取值为:
x ¶Emacs 使用 X 显示框架。
w32Emacs 使用原生 MS-Windows 图形界面显示框架。
nsEmacs 使用 Nextstep 界面显示框架(用于 GNUstep 和 macOS)。
pcEmacs 使用 MS-DOS 直接屏幕写入方式显示框架。
haikuEmacs 使用 Haiku 系统的应用工具包显示框架。
pgtkEmacs 使用纯 GTK 组件显示框架。
androidEmacs 在 Android 系统上显示框架。
nilEmacs 在基于字符的终端上显示框架。
该变量保存 Emacs 启动时创建第一个框架所使用的 window-system 值。
(当 Emacs 以守护进程方式启动时,不会创建初始框架,因此 initial-window-system 为 nil;但在 MS-Windows 上仍为 w32。See daemon in The GNU Emacs Manual. )
该函数返回一个符号,其名称指明用于显示 frame 的窗口系统(默认为当前选中框架)。
返回的可能符号列表与上述变量 window-system 一致。
若要编写在文本终端与图形显示器上行为不同的代码,不要将 window-system 和 initial-window-system 用作谓词或布尔标记变量。
原因是 window-system 不能很好地反映 Emacs 在某类显示器上的能力。
应改用 display-graphic-p 或 显示功能检测 中介绍的其他 display-*-p 系列谓词。