书籍详情
GNU Emacs Lisp编程入门
作者:(美)Robert J.Chassell著;毛文涛,吕芳译
出版社:机械工业出版社
出版时间:2001-01-01
ISBN:9787111088622
定价:¥38.00
内容简介
本书的作者罗伯特·卡塞尔是自由软件基金会的合创人之一,也是理查德·斯托曼博士青年时期结交的挚友,他精通GNU Emacs Lisp的每一个方面。本书是一本GNU EmacsLisp的编程入门,全书循序渐进地介绍了GNU EmacsLisp编程的各种基础知识和方法,文笔流畅、讲解透彻,对GNU Emacs用户提高对它的理解和运用帮助极大。GNU Emacs长期以来一直是自由软件基金会的旗舰产品,它是由理查德·斯托曼博十为GNU工程开发的第一个自由软件。在所有目前已开发的GNU软件中,GNU Emacs的作用和地位是非常突出的,几乎所有其他的自由软件基金会的工具都是用GNU Emacs编写的。从编程实践上看,GNU Emacs最为突出的特点是理查德·斯托曼在创造GNU Emacs编辑器时非常巧妙地揉和了用Lisp语言和C语言编写的代码。本书的作者罗伯特·卡塞尔是自由软件基金会的合创人之一,他精通GNU Emacs Lisp的每个方面。本书循序渐进地介绍了GNU Emacs Lisp编程的各种基础知识和方法,文笔流畅、讲解透彻,是GNU Emacs用户理解和运用GNU Emacs Lisp编程的最佳入门教程。
作者简介
暂缺《GNU Emacs Lisp编程入门》作者简介
目录
致中国读者
译者序
前言
第1章 列表处理 1
1.1 Lisp列表 1
1.1.1 Lisp原子 1
1.1.2 列表中的空格 2
1.1.3 GNU Emacs帮助你输入列表 3
1.2 运行一个程序 3
1.3 产生错误消息 4
1.4 符号名和函数定义 5
1.5 Lisp解释器 5
1.6 求值 6
1.7 变量 7
1.8 参量 8
1.8.1 参量的数据类型 9
1.8.2 作为变量和列表的值的参量 10
1.8.3 数目可变的参量 10
1.8.4 用一个错误类型的数据对象作为
参量 10
1.8.5 message函数 11
1.9 给一个变量赋值 12
1.9.1 使用set函数 13
1.9.2 使用setq函数 13
1.9.3 计数 14
1.10 小结 15
1.11 练习 15
第2章 求值实践 16
2.1 缓冲区名 16
2.2 获得缓冲区 17
2.3 切换缓冲区 18
2.4 缓冲区大小和位点的定位 19
2.5 练习 20
第3章 如何编写函数定义 21
3.1 defun特殊表 21
3.2 安装函数定义 23
3.3 使函数成为交互函数 24
3.4 interactive函数的不同选项 25
3.5 永久地安装代码 26
3.6 let函数 27
3.6.1 let表达式的各个部分 27
3.6.2 let表达式例子 28
3.6.3 let语句中的未初始化变量 29
3.7 if特殊表 29
3.8 if-then-else表达式 31
3.9 Lisp中的真与假 32
3.10 save-excursion函数 33
3.11 回顾 35
3.12 练习 37
第4章 与缓冲区有关的函数 38
4.1 查找更多的信息 38
4.2 简化的beginning-of-buffer
函数定义 38
4.3 make-whole-buffer函数的定义 40
4.4 append-to-buffer函数的定义 41
4.4.1 append-to-buffer函数的交互
表达式 42
4.4.2 append-to-buffer函数体 42
4.4.3 append-to-buffer函数中
的save-excursion 43
4.5 回顾 45
4.6 练习 46
第5章 更复杂的函数 47
5.1 copy-to-buffer函数的定义 47
5.2 insert-buffer函数的定义 48
5.2.1 insert-buffer函数中的交互
表达式 48
5.2.2 insert-buffer函数体 49
5.2.3 用if表达式(而不是or表达式)
编写的insert-buffer函数 49
5.2.4 函数体中的or表达式 50
5.2.5 insert-buffer函数中的let
表达式 51
5.3 beginning-of-buffer函数的完
整定义 52
5.3.1 可选参量 52
5.3.2 带参量的beginning-of-buffer
函数 53
5.3.3 完整的beginning-of-buffer
函数 55
5.4 回顾 56
5.5 &optional参量练习 57
第6章 变窄和增宽 58
6.1 save-restriction特殊表 58
6.2 what-line函数 59
6.3 练习:变窄 60
第7章 基本函数:car. cdr. cons 61
7.1 car和cdr函数 61
7.2 cons函数 63
7.3 nthcdr函数 64
7.4 setcar函数 65
7.5 setcdr函数 66
7.6 练习 67
第8章 剪切和存储文本 68
8.1 zap-to-char函数 69
8.1.1 interactive表达式 69
8.1.2 zap-to-char函数体 70
8.1.3 search-forward函数 70
8.1.4 progn函数 71
8.1.5 总结zap-to-char函数 71
8.1.6 第18版中zap-to-char函数的
实现方法 72
8.1.7 progn表达式主体 73
8.2 kill-region函数 74
8.3 delete-region函数:接触C 75
8.4 用defvar初始化变量 76
8.5 copy-region-as-kill函数 77
8.6 回顾 82
8.7 查找练习 83
第9章 列表是如何实现的 85
第10章 找回文本 88
10.1 kill环总览 88
10.2 kill-ring-yank-pointer变量 88
10.3 练习:使用yank函数和nthcdr函数 89
第11章 循环和递归 90
11.1 while 90
11.1.1 while循环和列表 91
11.1.2 一个例子:print-elements
-of-list 92
11.1.3 使用增量计数器的循环 93
11.1.4 使用减量计数器的循环 96
11.2 递归 98
11.2.1 使用列表的递归函数 99
11.2.2 用递归算法代替计数器 100
11.2.3 使用cond的递归例子 102
11.3 有关循环表达式的练习 102
第12章 正则表达式查询 104
12.1 查询sentence-end的正则表达式 104
12.2 re-search-forward函数 105
12.3 forward-sentence函数 106
12.4 forward-paragraph:函数的金矿 109
12.5 创建自己的“TAGS”文件 115
12.6 回顾 116
12.7 练习:使用re-search-forward 117
第13章 计数:重复和正则表达式 118
13.1 count-words-region函数 118
13.2 用递归的方法实现单词计数 123
13.3 练习:统计标点符号的数量 127
第14章 统计函数定义中的单词数 128
14.1 计数什么? 128
14.2 单词或者符号是由什么构成的? 129
14.3 count-words-in-defun函数 130
14.4 在一个文件中统计几个函数定
义的单词数 132
14.5 查找文件 133
14.6 lengths-list-file函数详解 134
14.7 在不同文件中统计几个函数定义
的单词数 135
14.8 在不同文件中递归地统计单词数 137
14.9 为图形显示准备数据 138
14.9.1 对列表排序 138
14.9.2 制作一个文件列表 139
第15章 准备柱型图 144
15.1 graph-body-print函数 148
15.2 recursive-graph-body-print
函数 150
15.3 需要打印的坐标轴 151
15.4 练习 151
第16章 配置你的“.emacs”文件 152
16.1 全站点的初始化文件 152
16.2 为一项任务设置变量 153
16.3 开始改变“.emacs”文件 153
16.4 文本和自动填充模式 154
16.5 邮件别名 156
16.6 缩排模式 156
16.7 一些绑定键 156
16.8 加载文件 157
16.9 自动加载 158
16.10 一个简单的功能扩充:
line-to-top-of-window 159
16.11 键图 161
16.12 X11的颜色 162
16.13 V19中的小技巧 163
16.14 修改模式行 163
第17章 调试 165
17.1 debug 165
17.2 debug-on-entry 166
17.3 debug-on-quit和(debug) 168
17.4 源代码级调试器edebug 168
17.5 调试练习 170
第18章 结论 171
附录A the-the函数 173
附录B kill环的处理 175
B.1 rotate-yank-pointer函数 175
B.2 yank函数 180
B.3 yank-pop函数 182
附录C 带坐标轴的图 184
C.1 print-graph函数的变量列表 185
C.2 print-Y-axis函数 185
C.2.1 题外话:计算余数 186
C.2.2 构造一个Y轴元素 188
C.2.3 创建Y坐标轴 189
C.2.4 print-Y-axis函数的最后形式 190
C.3 print-X-axis函数 190
C.4 打印整个图形 194
C.4.1 测试print-graph函数 197
C.4.2 绘制函数中单词和符号数的图形 198
C.4.3 打印出来的图形 202
猜您喜欢