elisp专题

ELisp编程七:创建函数

defun原型 https://www.gnu.org/software/emacs/manual/html_node/eintr/defun.html 里面介绍的defun并不全,可能文档过于老旧了吧。 http://www.gnu.org/software/emacs/manual/html_node/elisp/Defining-Functions.html 要全点,和emacs c-h

ELisp编程六:定义变量

给变量赋值 set (set arg1 arg2) 这种语法将arg2设置为arg1的值 比如: (set ‘flowers '(rose violet daisy buttercup)) 这是创建了一个symbol flowers,将(rose violet daisy buttercup) list 赋值给了flowers的value域。 稍后,可以直接使用flowers

ELisp编程五:解析器相关

Lisp解析器如何处理list? 如果这个list前面有单引号,就会直接将该list返回(不包含单引号); 如果没有单引号,则会将这个list的第一个元素作为函数名去查找,如果找到,则调用该函数,如果找不到则返回错误消息。 一般按照从左到右的顺序一个一个处理list中的元素 如果list内部有嵌套,解析器总是从最里层的那个开始处理。 如何求值? 求值的结果总是返回一个值,如果求值错

ELisp编程四:文件操作

确定一个文件是否存在 (file-exists-p "~/test.el") 看看它的帮助文档: file-exists-p is a built-in function in `C source code'.(file-exists-p FILENAME)Return t if file FILENAME exists (whether or not you can read

ELisp编程三:理解错误信息与查看帮助

运行错误信息 运行一句list (this is an unquoted list) Emacs(版本22之后)会打开一额个*Backtrace*的buffer,里面显示: Debugger entered--Lisp error: (void-function this)(this is an unquoted list)eval((this is an unquoted

ELisp编程二:Atom,Symbol,空格,注释

Atom 说明 在list中的不可分割的元素称为atom,比如前面一篇中的数字,单词,运算符号等。 一个list可以只有一个元素,或者一个元素都没有。Empty list写成 '(),这是一个特殊的list,因为它也同时算做一个atom. array(数组)也是一个atom,但是可以被分成多个部分。 双引号括起来的字符串也是一个atom,它有个常叫的名字string. (atom) 函

ELisp编程一:运行elisp的各种方式

使用Emacs这么多年,越用功能越多,开发C++,Java,HTML,JavaScript,访问MySQL,CMake编辑。上新闻组,收Gmail,Emacs Lisp语言是其中的灵魂。 自己开发或者修改emacs的扩展模块就需要掌握ELisp,而且Lisp既然是人工智能语言,学会它会让自己的思维上一个层次。有这么多好处,还等什么呢?立刻行动起来吧。 执行最后一个S表达式 从最简单的如何在E