ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《GNU Emacs Lisp 编程入门》-前言

2019-07-20 21:43:06  阅读:220  来源: 互联网

标签:本书 GNU Lisp 编程 学习 Emacs


原文链接:http://www.cnblogs.com/Guanghui-Zeng/archive/2012/11/21/2781498.html

  GNU Emacs 文本编辑器的绝大多数代码是用一种被称为 Emacs Lisp 的编程语言编写的。用这种语言编写的代码就是这个软件—指令集—用户通过它向计算机发布命令以告诉计算机如何工作。Emacs 就是为使你能用 Emacs Lisp 编写新的代码并能方便地作为编辑器的扩展部分来安装而设计的。这也是为什么 Emacs被称作“可扩展的编辑器”的原因。 
  因为 Emacs 的确提供了比编辑更多的功能,它或许应当被称为“可扩展的计算环境”,但是这个词显得口气太大。同样,在 Emacs 中做的任何事情—查找玛雅年代和月相、简化多项式、调试代码、管理文件、阅读信件以及撰写图书—所有这些活动都是“编辑”这个词所包含的。 
  虽然人们经常将 Emacs Lisp 与文本编辑器联系到一起,但它却是一种完整的计算机编程语言。可以像使用任何其他编程语言一样使用它。 
  也许你希望理解编程;也许你希望扩展 Emacs;或者也许你希望成为一名程序员。这本入门教程就是为你开始 Emacs Lisp 之旅而设计的:引导你学习编程基础,更重要的是告诉你如何自学提高。 
  在整本书中,你将看到为数不多的几个程序例子,你可以在 Emacs 中运行它们。如果用 GNU Emacs 的 Info 阅读本书文档,可以在例子程序出现时运行它们。(这很容易做到,我们将在例子出现时作进一步解释。)同时,你也可以将这本教程作为一本印刷的图书一样,当你坐在计算机旁运行 Emacs 时阅读。(这就是我所喜欢的方式,我喜欢印刷出来的纸版图书。)如果你身边没有一个运行的Emacs,你仍旧可以阅读这本书,但是在这种情况下,最好将其作为一本小说或者是一本你未到过的某个国家的导游手册来阅读:这样读起来会较有趣,但是你的收获会与亲身体验不同。 
  本教程用许多篇幅介绍 GNU Emacs 用到的代码。教程的这些设计安排有两个目的:一是使读者熟悉真实的正在运行的代码;二是使读者熟悉 Emacs 工作的方式。弄清一个编辑器如何工作是很有趣的。同样,我希望读者养成浏览源代码的习惯。读者可以从中学习并开阔思路。有了 GNU Emacs,就像拥有一个龙穴宝藏一样。 
  除了将 Emacs 当做一个编辑器、将 Emacs Lisp 当做一门编程语言学习之外,书中的例子和导引将使读者通晓将 Emacs 作为Lisp 编程环境的机会。GNU Emacs 支持编程,并提供了你将乐于使用的工具,如 “M-”(这是调用 find-tag 命令的键)。你还可以学习缓冲区和其他对象,这些都是编辑环境的组成部分。学习 Emacs 的这些功能就像熟悉家乡周围的新路一样。 
  最后,我希望传授一些使用 Emacs 来学习编程时读者不知道的技巧。你可以经常用Emacs 来解决那些困扰你的问题,并用它们做一些新奇的事情。这种自力更生不仅是一种乐趣,更是一种优点。 
  读者对象 
  这本教程是作为入门读物为那些非编程人员编写的。如果你是一名程序员,可能并不满足这本初级读物。原因在于你可能已经通过阅读参考手册成了专家。或许本书的组织方式已经使你失去兴趣。 
  一位评论过本书的编程专家曾这样对我说: 
  我更喜欢从参考手册中学习(编程)。我“潜入”每一个段落,并在段落之间跃出“水面”呼吸空气。 
  当到达一个段落结尾时,我假定这个主题已经结束。我知道了需要知道的所有东西(也可能存在这样的可能性,那就是下一个段落将对这个主题作更加详细的讲解)。我期望一份认真撰写的参考手册不要出现太多的冗余,并且它应指引我学习所希望的知识。 
  这本入门教程并不是为这类读者撰写的! 
  首先,我试图就每一件事情至少说上三遍:第一次介绍它;第二次在文中详细展现它的内容;第三次在不同的地方揭示它,或者复习一下。 
  其次,我几乎从不将一个主题的所有内容放在一个地方讲完,更不放在某一段中。以我思考的方式而言,那样做会给读者强加过重的负担。相反,我试图仅仅解释在那种情况下你需要知道的东西(有时会增加一点点附加信息,在后面读到这些附加信息的正式介绍时无需惊讶)。 
  阅读本书的时候,我并不指望你第一次就学会所有的东西。通常的情况是你仅需要对某些内容略微了解。我希望已经组织好本书,为你提供了足够的信息,并提醒你哪些是重要的线索,且着重讲述它们。 
  你应当“潜入”某些段落,除此以外没有其他方法。但是我已尽力减少这类段落。希望本书成为一座可以攀越的小山,而不是一座使人畏缩的高峰。 
  《GNU Emacs Lisp 编程入门》还有一个姊妹篇,那就是《GNU Emacs Lisp 技术手册》。那本手册比本书更详细。在那本手册中,关于任何一个话题的所有信息都集中在一个地方。如果你喜欢上面引用的那位程序员所欣赏的学习方法,那么应当掉头去阅读那本技术手册。当然,阅读完这本编程入门后,在编写自己的程序时,你会发现那本技术手册很有用。 

.  Lisp 的历史 
  Lisp 是20世纪50年代晚期在麻省理工学院为研究人工智能而被首先发展起来的。Lisp语言的强大功能使之也能用于其他目的,比如编写编辑器命令。 
  GNU Emacs Lisp 在很大程度上得益于20世纪60年代在MIT编写的 MacLisp 。它同时也得益于在20世纪80年代成为标准的 Common Lisp。然而,Emacs Lisp 比 Common Lisp 简单得多(标准的 Emacs 发行版本中包含一个可选的扩展文件“cl.el”,它为 Emacs Lisp 增加了许多 Common Lisp 的特性)。 
  初学者注意 
  如果你不知道 GNU Emacs,阅读本书仍旧有益。但是,如果仅仅是想学习在计算机屏幕上如何操作,建议你学习 Emacs。可以通过在线教程自学如何使用 Emacs。为使用在线教程,按下组合键 C-h t(这意味着同时按下并释放 CTRL和 h 键,然后按下并释放 t 键)。 
  同样,我经常在提到 Emacs 的标准命令时列出激活该命令时应按下的键序列,然后在括号中给出命令名,例如:M-C-\(indent-region)。这意味着indent-region命令通常是通过输入键序列:M-C-\ 来激活的(如果你愿意的话,可以改变激活这个命令的键序列,这称作“重新绑定”。参见16.11节,“键图”)。缩写 M-C-\ 意味着同时输入 META 键、CTRL 键和 \ 键。有时,像这样的一个组合键也叫做一个键和弦,因为它类似于在钢琴上演奏一个和弦。如果你的键盘没有 META 键,可以用前缀 ESC 键取代它。在这种情况下,M-C-\ 意味着按下并释放 ESC 键,然后同时按下并释放 CTRL 键和 \ 键。 
  如果用 GNU Emacs 的 Info 阅读这份文档,只用空格键就能翻阅整本书(可以输入 C-h i 然后选择 Info 来学习)。 
  关于术语的说明:当仅仅提到 Lisp 这个词时,常常是指各变种的Lisp;但是当提到 Emacs Lisp 时,就是特指 GNU Emacs Lisp 了。

转载于:https://www.cnblogs.com/Guanghui-Zeng/archive/2012/11/21/2781498.html

标签:本书,GNU,Lisp,编程,学习,Emacs
来源: https://blog.csdn.net/weixin_30367543/article/details/96633535

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有