前言
学习Elisp基础语法,Learn X in Y minutes, Where X=elisp
Emacs Lisp 为一个函数式的语言,所以它全部 功能都是由函数来实现的。
15分钟学会Emacs Lisp (v0.2a)中文版
作者:bzg,https://github.com/bzg
译者:lichenbo,http://douban.com/people/lichenbo
开始
打开emacs
按’q’消除欢迎界面
现在请注意窗口底部的那一个灰色长条,scratch 是你现在编辑界面的名字。
这个编辑界面叫做一个buffer。
每当你打开Emacs时,都会默认打开这个scratch buffer,此时你并没有在编辑任何文件,
而是在编辑一个buffer,之后你可以将这个buffer保存到一个文件中。
- 之后的Lisp interaction 则是表明我们可以用的某组命令
Emacs在每个buffer中都有一组内置的命令,而当你激活某种特定的模式时,就可以使用相应的命令
- 这里我们使用lisp-interaction-mode,这样我们就可以使用内置的Emacs Lisp命令了。
S 表达式
;
分号是注释开始的标志
Elisp 是由符号表达式构成的 (即"s-表达式"或"s式"):
(+ 2 2)
- 这个s式的意思是 “对2进行加2操作”.
s式周围有括号,而且也可以嵌套:
(+ 2 (+ 1 1))
- 一个s式可以包含原子符号或者其他s式
- 在上面的例子中,1和2是原子符号
- (+ 2 (+ 1 1)) 和 (+ 1 1) 是s式.
在 lisp-interaction-mode 中你可以计算s式.
把光标移到闭括号后,之后按下ctrl+j
(以后简写为C-j
)
(+ 3 (+ 1 2))
^ 光标放到这里
按下`C-j' 就会输出 6
C-j
会在buffer中插入当前运算的结果
而C-x C-e
则会在emacs最底部显示结果,也就是被称作minibuffer的区域
为了避免把我们的buffer填满无用的结果,我们以后会一直用C-x C-e
变量、字符串、函数
setq
可以将一个值赋给一个变量
(setq my-name "Bastien")
C-x C-e
输出 “Bastien” (在 mini-buffer 中显示)