《GNU Emacs Lisp Reference Manual For Emacs Version 24.5》是由Bil Lewis、Dan LaLiberte、Richard Stallman等多位作者共同编写的Emacs Lisp编程语言的权威参考手册,对应Emacs 24.5版本。该手册由Free Software Foundation出版,是GNU项目的重要组成部分,旨在为Emacs Lisp开发者提供全面、深入的编程指导。
核心内容概述
第一部分:基础与入门
- 第1章:引言:介绍了Emacs Lisp的历史、特点以及与GNU Emacs的关系。强调了Emacs Lisp不仅是一种扩展语言,更是一种完整的编程语言,适用于文本编辑和多种编程任务。
- 第2章:Lisp数据类型:详细介绍了Emacs Lisp中的各种数据类型,包括整数、浮点数、字符、符号、列表、数组、哈希表等,并解释了它们的读取语法和打印表示。
- 第3章:数字:探讨了Emacs Lisp中数字的表示、比较、转换以及基本的数学运算,包括随机数生成等。
第二部分:核心编程概念
- 第4章:字符串和字符:讨论了字符串和字符的创建、修改、比较以及格式化等操作,还涉及了字符编码和文本表示。
- 第5章:列表:深入讲解了列表的结构、操作以及如何使用列表来实现集合和关联列表。
- 第6章:序列、数组和向量:介绍了序列和数组的基本操作,包括向量和字符表的使用。
- 第7章:哈希表:详细描述了哈希表的创建、访问和使用,以及如何通过哈希表实现高效的键值映射。
第三部分:高级编程特性
- 第8章:符号:探讨了符号的定义、创建和属性管理。
- 第9章:求值:解释了Lisp表达式的求值规则,包括自求值形式、符号形式和特殊形式。
- 第10章:控制结构:介绍了条件语句、循环语句和非局部退出等控制结构。
- 第11章:变量:讨论了全局变量、局部变量、变量作用域以及变量绑定的规则。
- 第12章:函数:详细介绍了函数的定义、调用、映射以及匿名函数的使用。
- 第13章:宏:解释了宏的定义、展开和使用,以及如何通过宏实现代码的重用和抽象。
第四部分:编辑与用户界面
- 第14章:自定义设置:介绍了如何通过自定义变量和主题来配置Emacs的行为。
- 第15章:加载:讨论了如何加载Lisp代码、处理加载路径和自动加载。
- 第16章:字节编译:介绍了字节编译的概念、优势以及如何编译和优化Lisp代码。
- 第17章:调试Lisp程序:提供了调试工具和方法,包括Lisp调试器和Edebug。
- 第18章:读取和打印Lisp对象:介绍了如何从输入流读取Lisp对象以及如何将Lisp对象打印到输出流。
第五部分:编辑功能与扩展
- 第19章:小缓冲区:介绍了小缓冲区的使用,包括读取文本、Lisp对象以及补全功能。
- 第20章:命令循环:详细描述了命令循环的工作原理,包括命令定义、交互式调用和输入事件处理。
- 第21章:键图:探讨了键图的创建、继承和使用,以及如何将键盘输入映射到命令。
- 第22章:主模式和次模式:介绍了主模式和次模式的概念、定义和使用。
- 第23章:文档:讨论了如何编写和访问文档字符串,以及如何生成帮助信息。
第六部分:文件与缓冲区操作
- 第24章:文件:介绍了文件的访问、读取、写入和文件锁的使用。
- 第25章:备份和自动保存:讨论了备份文件的创建和自动保存机制。
- 第26章:缓冲区:介绍了缓冲区的基本操作,包括创建、切换和删除缓冲区。
- 第27章:窗口:详细描述了窗口的创建、调整大小和删除操作。
- 第28章:框架:介绍了框架的创建、管理和配置。
第七部分:文本处理与显示
- 第29章:位置:讨论了点(当前光标位置)的概念和运动操作。
- 第30章:标记:介绍了标记的创建、移动和使用。
- 第31章:文本:详细描述了文本的插入、删除、比较和格式化操作。
- 第32章:非ASCII字符:讨论了非ASCII字符的表示、转换和编码。
- 第33章:搜索和匹配:介绍了字符串和正则表达式的搜索、匹配和替换操作。
- 第34章:语法表:详细描述了语法表的定义、使用和解析表达式。
- 第35章:缩写和缩写扩展:介绍了缩写的定义、保存和使用。
- 第36章:进程:讨论了子进程的创建、管理和通信。
- 第37章:Emacs显示:介绍了Emacs的显示机制,包括屏幕刷新、文本显示和窗口系统特性。
第八部分:系统接口与扩展
- 第38章:操作系统接口:介绍了Emacs与操作系统的交互,包括启动、退出、时间处理和定时器。
- 第39章:为Lisp代码准备分发:讨论了如何打包和分发Emacs Lisp代码。
- 附录:提供了GNU Free Documentation License、GNU General Public License、编程约定和GNU Emacs内部结构等补充信息。
适用读者
本书是Emacs Lisp开发者的必备手册,适合有一定Lisp编程基础的读者。对于希望深入了解Emacs内部机制、扩展Emacs功能或开发Emacs模式的开发者来说,本书提供了详尽的指导和参考。同时,对于Emacs用户,本书也提供了丰富的自定义和优化知识,帮助用户更好地利用Emacs的强大功能。