GNU Emacs 社区的许多成员都编写了对 Emacs 的扩展。随着时间的推移,这些扩展通常会被包含在新的发行版中。例如,日历和日记包现在是标准的 GNU Emacs 的一部分,就像 Calc 一样。
您可以使用 load
命令来评估一个完整的文件,从而将文件中的所有函数和变量安装到 Emacs 中。例如:
(load "~/emacs/slowsplit")
这将评估(即加载)slowsplit.el文件,或者如果存在的话,加载emacs子目录中更快的、字节编译的slowsplit.elc文件。该文件包含了 John Robinson 在 1989 年编写的函数 split-window-quietly
。
split-window-quietly
函数以最小的重绘方式分割窗口。我在 1989 年安装它,因为它在我当时使用的速度为 1200 波特的终端上运行良好。如今,我只偶尔遇到这样的慢速连接,但我继续使用该函数,因为我喜欢它将缓冲区的下半部分留在新窗口的下半部分,而将上半部分留在上面的窗口中。
要替换默认的 split-window-vertically
的键绑定,您还必须取消该键的绑定,并将键绑定到 split-window-quietly
,如下所示:
(global-unset-key "\C-x2") (global-set-key "\C-x2" 'split-window-quietly)
如果您像我一样加载了许多扩展,那么您可以将该扩展文件所在的确切位置指定为 Emacs 的 load-path
的一部分,而不是像上面那样。然后,当 Emacs 加载文件时,它将在其默认目录列表以及该目录中搜索。 (默认列表在构建 Emacs 时在 paths.h 中指定。)
以下命令将您的 ~/emacs 目录添加到现有的加载路径中:
;;; Emacs 加载路径 (setq load-path (cons "~/emacs" load-path))
顺便说一下,load-library
是 load
函数的交互式接口。完整的函数如下:
(defun load-library (library) "加载名为 LIBRARY 的 Emacs Lisp 库。 这是对函数 `load' 的接口。在 `load-path' 中搜索 LIBRARY,既包括 `load-suffixes',也包括(以及 `load-file-rep-suffixes')。 有关更多详细信息,请参见 Info 节点 `(emacs)Lisp Libraries'。 有关 `load-file' 对 `load' 的另一种接口,请参见 `Lisp Libraries' 节点中的信息。" (interactive (list (completing-read "加载库: " (apply-partially 'locate-file-completion-table load-path (get-load-suffixes))))) (load library))
函数的名称 load-library
来自于“library”作为“file”的传统同义词的使用。该命令的源代码位于 files.el 库中。
另一个执行略有不同任务的交互式命令是 load-file
。有关 load-library
与该命令之间区别的信息,请参阅 ‘Lisp Libraries, , Libraries of Lisp Code for Emacs, emacs, The GNU Emacs Manual‘。