emacs
文章平均质量分 78
zhujiemao
这个作者很懒,什么都没留下…
展开
-
(原)用nXML-mode编辑xml
最近想用emacs打造一个小型的Java开发环境,Java开发的mode肯定是选jde了,在IBM的网站上有一篇文章介绍了jde的使用文章《使用emacs-jde进行Java开发》需要注意的是ede、eieio、semantic、speedbar都在cedet这个包中,elib还需要单独下载,这里就不再缀述。做为Java开发环境,一个称手的xml编辑器少不了。网上很多介绍使用psgml-mode...2006-12-09 10:45:00 · 543 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十二)正则表达式查询
正则表达式查询在Emacs中正则表达式查询使用得很广泛。在forward-sentence和forward-paragraph中使用了正则表达式查找定位。正则表达式'regular expression'常被写作'regexp'。 sentence-end的正则表达式符号sentence-end被绑定到匹配名末的正则式上。句末通常是用一个句号、问号或者叹号结束的。那么这个正则表达式应该包...2007-07-19 16:26:00 · 689 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十三)计数:重复和正则表达式
计数:重复和正则表达式重复执行和正则表达式是Emacs Lisp中非常强大的工具。这章讲解使用while循环和递归结合正则表达式进行查找进行字数统计。 字数统计标准的Emacs发行版中包含了一个统计region中行数的函数。但没有统计字数的函数。 count-words-region 函数字数统计函数可以统计行、段落、region、或者整个缓冲区。到覆盖范围该多大?Emacs的鼓励使用...2007-07-19 16:28:46 · 340 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十四)统计defun中的单词数量
统计defun中的单词数量我们的下一个计划是统计函数定义中的单词数量。我们可以使用count-word-region函数的一些变种(正则 表达式方式)来完成这个工作。如果我们只是需要统计定义中的单词数量的话,可以简单的使用C-M-h(mark-defun)命令,然后调用count- word-region。但我们要进行的是一项雄心勃勃的计划:我们需要统计Emacs源码中所有的函数和符号并打印...2007-07-19 16:36:00 · 309 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十五)准备图表
准备图表我们的目标是构造一个图表显示Emacs lisp源码中所有函数定义的长度范围。在实际应用中,如果你要创建一个图表,你可能会使用gnuplot之类的程序来完成这个工作。(gnuplot与GNU Emacs集成得很好。)但在这里,我们将使用前面我们所学的知识来完成这个工作。在这章,我们将先编写一个简单的图表打印函数。第一个版本将作为原型,在此基础上来增强。 打印图表列由于Emacs...2007-07-19 16:36:48 · 199 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十六).emacs文件
.emacs文件 Emacs的缺省配置Emacs缺省配置的优点。Emacs在你编辑C文件时将启动C mod,编写Fortan源文件时启动Fortran mode,编写未知文件时使用Fundamental mod。这些都是自动检测的,不需要干预。可以通过~/.emacs对Emacs进行定制。这是你个人的初始化文件;它的内容是Emacs Lisp代码。 全局初始化文件除了个人初始化文件外,...2007-07-20 11:10:26 · 325 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十七) 调试
调试GNU Emacs中有两个高度器,debug和edebug。第一个是Emacs内建的可以随时使用它;第二个需要借助一些函数才能使用。 debug假设你编写了用于加1的函数。但函数有个bug。你误将1-输入为1=了。函数定义如下:(defun triangle-bugged (number) "Return sum of numbers 1 through NUMBER inclus...2007-07-20 11:11:38 · 315 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十八) 终结
笔记连载完毕。感谢大家的支持!离线版本可以从这里下载。2007-07-20 11:34:23 · 100 阅读 · 0 评论 -
Emacs Lisp与Shell的交互
一直以来对于w3m、tramp、dired等与shell关系密切的mode不是很了解,没有仔细读过代码。但总觉得应该是调用shell命令,再将shell命令的输出重定向到emacs中进行处理。今天在网上看到了相关的方法:调用shell命令(defun zj-open-directory-with-explorer () "在windows中用explorer浏览当前目录" (intera...2008-03-10 16:27:41 · 327 阅读 · 0 评论 -
Emacs Lisp中的hash table
(defun zj-hash-test () "hash table 测试" (interactive) (let (myhash val) ;; 创建hash table并告诉elips用equal来测试key是否存在 (setq myhash (make-hash-table :test 'equal)) ;; 添加数据 (puthash "key1" "19" ...2008-03-10 16:30:24 · 151 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十一)循环和递归
循环和递归Emacs Lisp有两种方式循环执行语句:使用while循环,或者使用递归。 whilewhile测试它的第一个参数的值,如果为false,解释器将不会执行语句的body部分。如果为true,解释器将执行语句的body部分,然后重新测试第一个参数的值,开始下一轮循环。while语句模板如下:(while true-or-false-test body...)使用whil...2007-07-04 18:18:00 · 435 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(十)Yanking Text Back
Yanking Text Back当使用'kill'命令剪切文本时,可以用'yank'命令恢复它。被剪切的文本被放到kill ring,yank命令可以将文本恢复。C-y(yank)命令插入kill ring中的第一个元素到缓冲区。如果C-y命令后立即跟一个M-y,则插入的文本将被替换为kill ring的第二个元素。连续的按M-y,将使用kill ring中更靠后的文本替换前一次操作插入的...2007-07-04 17:59:46 · 149 阅读 · 0 评论 -
Programming in Emacs Lisp笔记的离线版本(2007年7月20日更新,完整版)
使用muse生成了这个笔记的html版本。里面有带链接的索引,浏览起来比较方便。可以从附件下载。以后有新的更新时,我会同时更新这个链接。这个发布文件使用的薛瑞尼所写的Muse CSS文件。...2007-07-03 15:45:21 · 89 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(一)表处理
一直以来我都在使用Emacs编辑器,使用得越多,越想深入了解Emacs Lisp。在gnu的网站上,我找到了Programming in Emacs Lisp,觉得是很好的学习资料。下面是我的学习笔记贴出来与大家分享。这个笔记中,对Emacs Lisp中的一些名词:symbols、form、list等没有统一的叫法,对函数、form等也是混合着在使用,主要是为了能让自己更容易了解。...2007-06-25 14:56:25 · 484 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(二)实践
实践执行代码通过C-x C-e执行代码缓冲区名称buffer-name和buffer-file-name这两个函数用于区分文件和缓冲区。如果是在*scratch*缓冲区中,可以用C-u C-x C-e运行代码,这样运行结果会显示在表达式的后面。获取缓冲区buffer-name可以获取缓冲区名称,current-buffer可以返回缓冲区本身。ot...2007-06-25 15:01:00 · 111 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(三)编写函数
编写函数关于基本函数(Primitive Function)除了少数C编写的基本函数外,所有的函数都是由其它函数语句定义的。当编写自己函数时,C所编写的函数与Emacs Lisp编写的函数看起来是一样的。除非你想去考究,否则不需要知道知道一个函数是用Emacs Lisp编写的还是C编写的。defun在一个函数的定义中,在defun关键字后面有5个部分: ...2007-06-25 15:01:00 · 414 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(四)与缓冲区有关的函数
部分与缓冲区有关的函数查找更多信息可以通过C-h f查看函数的说明,C-h v查看变量的说明,这些说明就是Emacs Lisp代码中的文档字符串。在20或更高版本以后,可以用describe-function(C-h f)将告诉你函数定义的位置。在文件名上按回车(这个操作是help-follow函数调用)将打开函数定义。etags:在代码中如果想要查看函数源文件,可以使...2007-06-26 13:38:00 · 177 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(五)一些更复杂的函数
一些更复杂的函数 copy-to-buffer的函数定义这个函数拷贝文本到缓冲区,但它不是追加到第二个缓冲区,而是替换第二个缓冲区之前的文本。copy-to-buffer函数与append-to-buffer代码很类似,但它使用了erase-buffer和二个save-excursion。该函数的函数体如下:...(interactive "BCopy to buffer: \nr") ...2007-06-27 13:04:00 · 257 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(六) Narrowing and Widening
Narrowing and WideningNarrowing是Emacs的一项功能,它使你可以将焦点集中在缓冲区的某个部分上,而不用担心意外的修改了其它部分。Narrowing通常被禁用,因为它可能会使新手觉得迷惑。 Narrowing的优点使用narrowing时,缓冲区的其它部分不可见,看起来就像其它部分不存在一样。利用这点你可以只在缓冲区中的某个部分进行查找或替换操作,而不会影响缓...2007-06-28 10:41:10 · 209 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(七)基础函数:car, cdr, cons
基础函数:car, cdr, consLisp中car,cdr和cons都是基础函数。cons用于构造lists,car和cdr用于分割lisp。 奇怪的命名cons函数的名称并非没有含意:它是单词'construct'的缩写。car是短语'Contents of the Address part of the Register';cdr('could-er')是短语'Contents o...2007-06-29 10:09:10 · 809 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(八)剪切和存储文本
剪切和存储文本当使用'kill'命令剪切文本时,Emacs将它存储到一个列表中,可以用'yank'命令重新获取到。 存储文本到列表当文本被剪切出缓冲区时,它将被存储到一个list中。文本块连续的存储在list中,这个列表看如下面的形式: <src lang="lisp" piece="" previous="" text="" of="" a="">&a2007-07-02 12:04:17 · 320 阅读 · 0 评论 -
Programming in Emacs Lisp笔记(九)List的实现
List的实现Lisp中list使用了连续的指针对来保存数据,指针对的第一个指针指向一个原子或者另一个list,指针对的第二个指针指向另一个指针对,或者指向nil,以表明list的结束。 List图示举例来说,list(rose violet buttercup)有3个元素,rose,violet和buttercup。在计算机中,rose的地址被保存在计算机内存中,通过这个地址可以知道 原...2007-07-03 14:20:29 · 197 阅读 · 0 评论 -
emacs中使用semantic实现c代码自动完成功能
环境:windows xpemacs 23 自已编译的cvs版cedet cvs版(当前的1.0pre4提示的速度太慢了,cvs中的提示出现速度飞快) 配置过程备忘:1.下载cvs版cedetcvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P cedet 2.编译cedet在wi...2008-11-25 16:29:06 · 364 阅读 · 0 评论