用Emacs的乐趣之一就是亲眼看到自己的编辑效率随使用时间的累积而增长。而且有了elisp的帮助,可以将其它编辑器的优秀功能”拷贝”过来,大有海纳百川的壮阔感觉。Babar K. Zafar的网页上有篇汇集Emacs技巧的文章。非常有用。我尤其喜欢里面实现常用VI功能的函数:这样我就不用丢掉以前用惯的编辑功能了。什么时候Elicpse也支持自己的脚本语言就好了。让我们轻易地读取和操纵Eclipse Runtime以及Java AST,不用为了在console里加上文件链接都要创建N个类。Wiki的创造人Ward Cunningham正在做这项工作。但愿他快点搞定。
下面解释一下自己常用的几则技巧。原文还有更多技巧,强烈推荐。
先说说怎么试用这些技巧。Emacs根本就是elisp的解释环境,碰巧实现了编辑器而已。所以和elisp的函数勾兑再容易不过。假设我们打开一个Emacs的缓冲:
现在c-x 2, 增加新的缓冲
接着c-x o, 把光标切换到新增的缓冲里:
再切换到*scratch*缓冲就行了。Emacs提供的*scratch*缓阅读全文>
发表于 @ 2007年03月04日 16:52:00|评论(loading...)|编辑
人在江湖走,岂能不挨刀。今天人生又完整了一点:Emacs出现运行错误。一番折腾,正好学会一点简单的排错技巧。
本来JDE运行得上好。我把所有相关文件送入SVN后(花了那么多精力配置Emacs,不把心血放进版本控制软件加每日多次冗余备份,好比吴英真地披挂上10亿珠宝,孤身到广州火车站遛弯儿一样不靠谱),重启Emacs却得到如下错误:error: JDEE plugin Lisp file jde-.svn.el missing。在JDE安装目录下做全文搜索,没有这啥jde-.svn.el文件。也没有任何一份*.el代码含有jde-.svn.el的字样。考虑到Lisp的动态特性,以及.svn酷似SVN文件树下的元数据目录名,开始猜测JDE的某个函数扫描某些文件夹,把里面所有的文件都当成插件载入。当然,俺是程序员,不会像黎叔一样拿比人中黄还有想象力的猜想当证明,满世界找人决斗博取同情。排错的过程如下:
根据Emacs的提示,用emacs –debug-init启动Emacs。或者在初始文件里加入这句:(setq debug-on-error t)。setq是Emacs Lisp阅读全文>
发表于 @ 2007年02月16日 12:02:00|评论(loading...)|编辑
Emacs的基本配置顺手后,我立刻发现缺省的字体,Courier New,让人不爽。虽说Courier New是mono-space的字体,但还是不能满足编程的需要。一是它的0和O不容易区别。二是(和{不容易区别。三是1和l不容易区别(用过Prolog的老大们初学时为了这个1和l,没少熬过夜吧?)。幸好找字体这种体力活早有铁杆儿geek, 博客快枪手Jeff Atwood代劳。我最爱Pragmata。可惜珍品藏富室,美人入豪门。艺术永远是金钱的敌人。Pragmata要价90欧元。我只好作罢,选中Proggy Clean TT。Proggy Clean是基于位图的字体,只有12号字体最清晰。如果我们的屏幕分辨率太高,就没法用了。不过我的分辨率也就1600x1200,12号字体放在Emacs上正好。我们可以比较一下效果:
Courier New的效果:
Proggy Clean的效果:
安装新字体容易,把字体文件解压到C:\Windows\Fonts下就行了。羚羊书上说可以SHIFT+鼠标左键就可以调出字体菜单。果不其然:
不知道是羚羊阅读全文>
发表于 @ 2007年02月15日 11:43:00|评论(loading...)|编辑
自从开始对Emacs感兴趣,而不是仅局限于用SLIME同Common Lisp偶尔亲热一下而已后,俺便断断续续读起号称Emacs初学者必备的羚羊书第三版。一边读,一边笨手笨脚地使用Emacs。几周下来,虽然还要不时翻书,好歹开始习惯那些和Vim迥异的组合键。用C-f, C-n, C-p, M-d什么的也慢慢变成下意识的反应。俺的~/目录下也累积了50多兆各式扩展,模式,和配置文件。当然当然,作为初学者,俺坚持不用自己的key binding,除了把过气的\C-x\C-u映射到undo上以外。毕竟对缺省配置的极度熟悉有助于自己在不同的机器上使用Emacs。可移植性不仅是对程序的要求,也是对人的要求。总的来说,Emacs确实好用。扩展比郭敬明抄袭的文字都多,功能比黎叔吹的牛B还强。用于Common Lisp开发的SLIME,用于Ruby开发的Ruby Mode, 用于Java开发的JDE, 开发工具集合CEDET,让操作文件和缓冲方便之极的ECB。。。不过俺还是有些怀念Vim的方便,时不时用Vim编写点小东西。毕竟Vim区分编辑模式和控制模式,使得组合键简短。
图片来阅读全文>
发表于 @ 2007年02月12日 14:05:00|评论(loading...)|编辑