30.27 X 资源

本节介绍部分用于查询和使用 X 资源(或你所用操作系统中等价的配置项)的函数与变量。有关 X 资源的更多信息,See X Resources in The GNU Emacs Manual.

Function: x-get-resource attribute class &optional component subclass

函数 x-get-resource 从 X 窗口默认配置数据库中获取一个资源值。

资源通过键(key)类(class)的组合进行索引。本函数使用格式为 ‘instance.attribute’ 的键(其中 instance 是启动 Emacs 时使用的名称),并使用 ‘Emacs.class’ 作为类进行搜索。

可选参数 componentsubclass 分别添加到键和类中。这两个参数必须同时指定或都不指定。若指定,则键为 ‘instance.component.attribute’,类为 ‘Emacs.class.subclass’。

Variable: x-resource-class

该变量指定 x-get-resource 应当查找的应用程序名。默认值为 "Emacs"。在调用 x-get-resource 前将此变量绑定为其他字符串,即可查询其他应用程序名对应的 X 资源。

Variable: x-resource-name

该变量指定 x-get-resource 应当查找的实例名。默认值为启动 Emacs 时使用的名称,或通过 ‘-name’ 或 ‘-rn’ 选项指定的值。

为举例说明上述内容,假设你的 X 资源文件(文件名通常为 ~/.Xdefaults~/.Xresources)中包含如下一行:

xterm.vt100.background: yellow

则执行结果如下:

(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
  (x-get-resource "vt100.background" "VT100.Background"))
     ⇒ "yellow"
(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
  (x-get-resource "background" "VT100" "vt100" "Background"))
     ⇒ "yellow"
Variable: inhibit-x-resources

若该变量非 nil,Emacs 将不会查找 X 资源,且创建新框架时 X 资源不会产生任何效果。