暂停更新
在接下来的一段时间内这个Blog将暂停更新
最近一直有人问我什么时候写一写关于基本编辑操作的教程,不过我并没有这种打算。一个原因是现在的进阶教程只写了不到五分之一,另一个原因就是这种类型的教程已经有很多了。其中就包括了今天贴的这一篇:”Vi/Ex编辑器教程“
这篇教程是老外写的,当时之所以有翻译的冲动是因为觉得这么有”质量“的教程在国内并不多见。翻译后也在旧的Blog上贴过,因为最后没译完(译了四篇)所以一直没放到这里。
现来之所以贴上来是因为估计以后也不会再继续翻译下去了,还是先贴出来。好歹也让人知道国外有这么一篇教程……
今天先贴上前两篇。
回来的这一星期雨似乎没停过。
屋里能发霉的东西都发霉了——好一个梅雨季。
下不完的雨让人烦闷……
歌名:思念人之屋
词/曲:陈升
住在窗台上的薄荷草
它在醒来时就迎著光
如果会说话 我想它会说
啊 这样的天气
只能思念人
独自走在雨中的小黄狗
它在散步的路上来拜访我
想起她曾说 如果想到我
却找不到人说 就和它聊天
But,don’t talk to a dog at raining days.
So,don’t talk to a dog at raining days.
我想它有自己的寂寞
所以才孤独的走在雨中
Hello, baby dog.
是否你要借把伞 She is gone.
I am living in the “house of missing you”.
Cause’ I am living in the “house of missing you”.
迷漫房子里的咖啡香
提醒我你在心灵的异乡
不再属于我 是否想到我?
他对你好吗? 其实~我还好~
But,don’t talk to a dog at raining days.
So,don’t talk to a dog at raining days.
我想它有自己的心痛
所以才湿淋淋的走在雨中
Hello,baby dog.
是否你和我一样 She is gone.
I am living in the “house of missing you”.
I am living in the “house of missing you”.
几天前在书店看到了Eric S. Raymond的《Unix编程艺术》1中文版,一直听说这书不错就买下了……
这是一本Unix的宗教书籍——至少从书名和前15页来看是这样的,作为Unix的信徒将这样一本宗教书籍带回家就像基督徒的家中有一本圣经一样自然。令人失望的是整本书只有前30页还有点价值,其余的部分由自我崇拜+目空一切所组成。虽然买这书时就没想过要作者写得客观,因为这种书(或者所有关于Unix文化的书)当然会带有主观甚至是强烈的个人色彩。但看完书后有些话还是不吐不快……
通篇看下来看出作者要表达的可以归结为三点:
Unix哲学不朽
信我者得永生
Emacs是最好的并且能与Unix哲学相容
关于上面的最后一点实在是不敢赞同。作者将Unix哲学概括为17条原则。其中,写其他原则时不容妥协的态度形成鲜明对比的是作者对吝啬原则隐约其辞(他还特地写了一篇“软件的适度原则”),看到后来才明白原来作者是Emacs用户。并且与前面偏向技术分析写作风格不同的是在写编辑器的章节时作者倾向于从哲学地角度来看问题。
虽然我们都知道在功能及操作取向上的差异这才是Vi与Emacs的最大不同——对了还有体积!然而作者试图将这些讨论带入哲学层面,然后在读者入坠五里云雾时带出结论。除了使用了更多更抽象的词汇写这一篇(译者应该也挺头痛的吧),他还做了一些比较来支撑他的观点:
然后得到了Emacs(比Vi)更胜一筹的结论。这里面的逻辑令人费解。
作者明白光一味地贬低Vi还不足以说服人们停止对Emacs体形肥大功能庞杂的指责。他为此加入了一节“Emacs是个反Unix传统的论据吗?”为Emacs辨解2:
对于他怎么吹捧或者怎么为Emacs辩解我并不怎么在乎,但他对Vi的说法让人无法接受。他关于Vi的论述中只有一个专用陷阱还算站得住脚。他认为专用性陷阱存在的情况下Vi必须不断添加代码来获得新的功能,而大部分用户不得不为他们没用到的代码买单。
但Vi用户都知道的是Vi的增加的代码都是针对编辑需要而增加的,而不是加入对图像声音的支持4。而讽刺的是就算是功能最强大的Vim——在增加了无数代码后也只是Emacs的一小部分。在Vim的最新(2006年4月)PC版本7.0e在+Big编译选项下有1400KB5,而GNU Emacs(Gnu Emacs V21.3,2003年)有9000KB,完整的包有近20MB。更不用说Vim的1400KB已经包括了几乎所有功能,而Emacs在没有扩展的情况下虽然有9000KB却也比Wily好不到哪去。注意:该书中文版在P310最后一行是明显的误译:
中文:“Vim有1500KB而GNU Emacs是900KB” 原文:“1500KB for GNU Emacs versus 900KB for vim” 应为:“GNU Emacs有1500KB而Vim是900KB”
从另一方面看Emacs的Lisp代码在离开Emacs几乎没用。Emacs的扩展与Vi不断增加的c代码在本质上并无不同,只是一边是以二进制存在一边是以文本的方式存在。Emacs虽然可以选择不加载扩展但在Vi的体积也进入9MB之前我不认为这是一个多明显的优点。
最后,我们来看一下作者是怎么根据Emasc来扩展最简原则的定义的(中文版的P316):
最简原则暗示:选择需要管理的上下文环境,并且按照边界所允许的最小化方式构建程序。这就是“尽可能简单,而不过于简单”,……
最矫正这种趋势的方法直接来自于旧学派Unix的赞美诗集。这就是吝啬原则:只有实证了其它方法行不通时才写庞大程序…………如果两者都失败了,才可以自由地构建一个巨型程序(或一个新框架),而不会觉得已经完败于设计挑战。
这是原文:
This suggests a Rule of Minimality: Choose the shared context you want to manage, and build your programs as small as those boundaries will allow. This is “as simple as possible, but no simpler”, ……
The corrective to this tendency comes straight from the old-school Unix hymnbook. It is the Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do—that is, when attempts to partition the problem have been made and failed. ……Only if both approaches fail are you free (in the Unix tradition) to build a large program (or a new framework) without feeling you have failed the design challenge.
如果上面的中+英文还不够清楚地话那我解释一下好了,这些话的大意是:如果Emacs不符吝啬原则的话,那就赋于吝啬原则新的含义。这样Emacs就符合新的吝啬原则了。
这本书的其他部分就不做评论了6,大家可以在网上找找应该可以找到很多关于这本书的书评……
[1] 这本书使用CC授权,可以免费在线阅读地址是http://www.faqs.org/docs/artu/
[2] 这些都可以在书中的13章看到
[3] P315,“在我们对Emacs复杂度种类和动机的分析中,还有什么更意味深长的暗示?又有什么理由相信那些从教训归纳出来的东西?”
[4] Latest stable release: 21.4 (Feb 6, 2005) Emacs version 21 supports variable width and height fonts, playing sounds and the inclusion of images in a document, as well as tool bars, plus nicer menus and scroll bars.
[5] 1.4MB对于编辑软件来说的确是大了点
[6] 一次只做一件事并做好
Get free blog up and running in minutes with Blogsome
Theme designed by Jay of onefinejay.com