Emacs 工作原理
来源:互联网 发布:vb vc 编辑:程序博客网 时间:2024/06/07 06:22
最近发现越来越离不开Emacs了,情急之下为了让它更好的为我服务,就自己学习了Emacs lisp 编程,还挺有收获
一:几个相关的基本概念
1.原子是:多字符、单字符(如+号),双引号之间的字符串,或者数字。
2.Lisp程序是由表达式组成(一对括号和里面的内容就是一个表达式),表达式是列表或者单个原子。
3,一个表达式的第一个元素一般是一个函数,在Emacs中也就是一个命令,函数调用,直接(函数名 “...参数列表..") ,无参数时,参数为空。
4.单引号,”'” 被称作一个引用(quote),当单引号位于一个列表之前时,它告诉lisp不熬对这个列表做任何操作,而仅仅是按其原样。
5,可以在Emacs中的“scratch” 缓冲区中练习lisp语法,执行命令用C-x C-e 或者,C-j,区别自己试试就知道了。如在(buffer-size)后执行C-j,将返回当前缓冲区的字符数。
6.当对一个函数(一般一对括号扩住的内容可以看做一个函数如(+ 2 2) ) 求值时总是返回一个值(除非得到一个错误消息)
7.Lisp总是最先处理最内部括号中的内容,其返回值供外边一层用
二:Emacs的工作方式
每当在Emacs Lisp中发出一个编辑命令时,比如一个移动光标命令,就是对一个表达式求值,这个表达式的第一个元素就是一个函数。这就是Emacs的工作方式。
(当你击键时,你是让Lisp解释器对一个表达式求值,于是就得到了结果,即使你是键入的普通的文本,也是对Emacs Lisp求值,这个函数仅仅插入你输入的字符,比如你按了C-f 键,就是调用了forward-char 函数,这个函数让光标向前一个单词)
下面对(switch-to-buffer (other-buffer)进行示例说明
1.符号switch-to-buffer 是这个列表的第一个元素,因此lisp解释器将对它视作一个函数,并执行这个命令。
2.但在这样做之前,解释器发现other-buffer在一个括号内,因此先处理这个列表。
3.other-buffe是这个列表的第一个元素,因此lisp解释器调用这个函数,它返回另外一个缓冲区。
4.下一步,解释器运行switch-to-buffer 函数,将另外这个缓冲区作为一个参量传给它,这后面一个缓冲区就是Emacs要切换到的缓冲区
最近我会把我学到的一些Emacs Lisp编程知识,分享出来,欢迎大家一块讨论,欢迎转载(不断更新中...................)
http://blog.csdn.net/zhuyingqingfen/article/details/8057958
- Emacs 工作原理
- emacs home 配置及原理
- 工作原理
- 让Source Insight像EMACS一样工作
- struts2工作原理 工作流程
- emacs...
- emacs
- ~/.emacs
- .emacs
- emacs
- emacs
- emacs
- Emacs
- emacs
- emacs
- Emacs
- Emacs
- .emacs
- xp装安卓
- Android sysout.exit(0) 和finish()区别
- cygwin connection closed by ::1
- 查找最小的4 个元素
- Java System.getProperty() 参数
- Emacs 工作原理
- HDU 1796 How many integers can you find(容斥原理)
- 指尖检测测试(一)
- AIX修改时区
- 2012-10-10 11gR2 concepts page 65 - 96
- init.rc到底在做些什么
- android:name
- VMA & LMA
- ACM-ICPC 2012 长春.准备(16张照片,外链)