《学习 GNU EMACS 第二版》学习笔记 (一) 如何建立自己的LISP开发库

丶灬走出姿态 提交于 2020-02-29 21:54:50

《学习 GNU EMACS 第二版》学习笔记 (一) 如何建立自己的LISP开发库

P.458
当你在做了一定数量的LISP程序开发之后,你已经积累了一部分自己写的LISP函数,也许你很想把它们打包到一起做为一个开发包来使用,这样可以很方便地随时调用(当然,你可以把一些函数放在 .emacs 文件中加载,但是一旦数量较多这么做就不太方便了)。

需要2个步骤:

1、创建一个目录,把你的 lisp 代码拷贝到这个目录下;

2、让EMACS知道有这个目录,这样当你试图加载某个程序包时,EMACS才能知道在哪里去找。EMACS把这类目录都记录在全局变量 load-path 中,该变量的值是一个由字符串元素组成的列表,每个字符串是一个目录名。
假设你的LISP代码的目录名为“~mycode/lisp“,那么需要把如下语句添加到 .emacs 文件中:
(setq load-path (append load-path (list "~mycoe/lisp")))
该命令执行后,当你试图加载某个函数时,EMACS会按照目录在 load-path 变量中出现的先后顺序进行查找,也就是说我们新加的目录 "~mycoe/lisp” 在 load-path 变量的最后,所以最后一个被搜索到。

如果希望先从你新设的 "~mycoe/lisp" 目录查起,则如下设置:
(setq load-path (cons load-path (list "~mycoe/lisp")))

接下来就可以加载和使用自己开发的LISP程序包了,下面提供了4种方法:
1、输入用户级命令 alt-x load-library 回车。
2、在LISP代码里(通常是你的 .emacs 文件)里加入语句 (load "package-name")。如果该语句是加在 .emacs 文件里,EMACS会在起点时加载你指定的名为 package-name 的包。
3、给用来启动 emacs 的命令(runemacs.exe)加上一个命令行参数 “-l package-name”。该操作将加载指定的程序包,在 emacs-24.2 中可以这样使用 runemacs.exe --eval (load \"lispbox\")。
4、在LISP代码里(通常是你的 .emacs 文件)里加入语句 (autoload ‘function “filename"),这个操作将在执行给定函数 function 时让 emacs 自动加载相应的程序包。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!