当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 45 篇帖子 ]  前往页数 1, 2, 3  下一页
作者 内容
1 楼 
 文章标题 : 有关Emacs的一些思考
帖子发表于 : 2009-12-08 11:07 

注册: 2009-12-06 21:23
帖子: 109
送出感谢: 0 次
接收感谢: 0 次
#+TITLE: 有关Emacs的一些思考
作者:三点

在下文中,C-x意为Ctrl-x,M-x意为Alt-x,以此类推。
RMS为Gnu教父Richard Stallman。Emacs指Gnu Emacs。Vi泛指Vim/vi。

* STARTED 我的Emacs私房菜(向鸟哥的Linux私房菜致敬)
** 几个疑问?
*** Emacs用户为什么没有Vi多?
这个问题来源于现实,大多数*nix平台上的用户都会选择用Vi。拿我自己来说
吧,我在用Emacs之前有3年的Vi经验,这期间也尝试用过Emacs,但都没有坚持
下来。

在这里,有必要回忆一下多年前不怎么美好的Emacs初体验。首先是保存文件,C-x
C-s,比Vi的:w繁琐。接着是没有看到tab,这个在Vim里都有了。这两个简单的判
断直接判了Emacs死刑。

直到2年前,偶然看到一位同事在用Emacs的dired。幸运的是,那位同事是传教
士型的用户,他极力向我推荐用Emacs。用他的话讲,“Vi是单项冠军,Emacs是
十项全能”。从这个意义上讲,比较Vi和Emacs就像比较刘翔和中国乒乓球队一
样,既不公正,也没有意义。或者说,Vi更符合Gnu的Kiss原则。

从那时起,我开始花时间熟悉Emacs。一开始是在家里的Windows XP上。我发现我
在Emacs上花的时间远比Vi上的时间多(我在Vi上只学了十几个指令就开始干活
了,并且没有大改过配置文件),但在Emacs上,我甚至为自己写了上千行的文档
还不过瘾。

Emacs的老用户对它有个爱称“怪兽”,而其他Editor的用户也借此嘲笑他身躯庞
大,功能繁多,外加启动贼慢。过去,Vi用户嘲笑Emacs用户,“你还在等Emacs
load,我已经把程序都调完了”,现在轮到Emacs用户嘲笑Eclipse用户了,呵呵。
在我的机器上,Emacs启动要load十几个mode,还有四五十个文件/文件夹,大概
只要不到5秒时间。Emacs占用的内存一般只有20MB左右。所以,时间和速度都不
是问题了。

我想,其他Editor的用户也不是不想让自己的Editor成为“怪兽”,只是没有能力
罢了。在设计Emacs初期,RMS在速度和扩展上选择了后者。在扩展语言(Elisp)方
面,Emacs远远超出同时代的Editor,所以才有了org-mode,gnus,dired,vc等
等。其他Editor的用户(比如我)也是基于这个原因转投Emacs。

对于Emacs用户来说,Windows/Linux/Mac都不是问题,因为Emacs本身就是个
OS,当我把家里的机器重装成Ubuntu,也没有什么磨合过程,因为除了用
Firefox/pdf reader,大量的时间都是和Emacs一起度过的。

回到原来的问题“Emacs用户为什么没有Vi多”。我想既有历史的原因,也有实际
的考虑。

先讲讲历史。十年前,正是Emacs的内战胶着期,以Zawinski为首的Hacker不再认
同RMS的开源策略,认为RMS老古董,落伍了。所以他们从Emacs 19开始分化成另
一个版本,XEmacs。不可否认,XEmacs对Emacs的进化有积极意义,带来更多的
新feature,但XEmacs的不稳定是出了名的,一天crash个几次都有可能。所以
Emacs的用户有两个选择,新潮但不稳定的XEmacs,陈旧但稳定的Emacs。而此
时vi也在进步,且始终稳定,这就使得新手在选择Emacs和Vi上逐渐倾斜Vi。

转瞬十年,尘埃落定。XEmacs几乎放弃更新,而Emacs继续向着23挺进。S. Yegge
也为它写了悼词,“XEmacs is dead, long live XEmacs”,呼吁Emacs用户重新
团结在GNU周围。经过这次折腾,Emacs元气大伤。

再看看现实。首先,我们都知道,大多数人干的活上是维护,也就是读代码或者
修改代码,而不是开发新程序。所以,如果我只要改一个文件,当然不需要开
Emacs,在terminal打开vi,瞬间修改保存,多好:)。这就是我用vi的情景。

其次,Emacs的key-binding一直是用户诟病的话题,比如我上面举的C-x C-s。无
节制的采用Ctrl最终让RMS患上肌肉功能疾病。现在Emacs上的key-binding其实是
RMS在MIT时的产物,到现在已经有三四十年了,他和他的同事们把自己随意定
义的key-binding放在一起(RMS定义key-binding的能力如果和他写程序的能力一样
强,那有多好),和谐了一把,就是我们现在看到的样子了。RMS老了,他已经不
想再在这上面作改动,他的手也不允许他编程了。但我们还年轻,既要用
Emacs,又要保护自己吃饭的本钱-双手。这就是为什么我以后要提到的“Lee
Xah's ErgoEmacs”和S. Yegge的“换ctrl和caps lock”。

最后,Emacs的培训比Vi要更难些,更花时间。作为vi用户,我知道,大多数人在
“裸vi”(没有特别配置过的vi)上工作的很好。但是Emacs用户却对配置乐此不疲
(不知道有多少人用裸Emacs)。我认识的一个小伙子光配置文件就分十几个文件,
上万行代码。这一点,vi用户很难理解。“不就是个editor吗”,有必要花这么多
时间在上面吗?用过Emacs,我才知道,其实Emacs用户喜欢的是Elisp环境,而不
是vi意义上的editor。

如果让我用一句话来表达对Emacs的感情(我在用Vi的时候好像没有这种感情,呵
呵),那就是"Use it, love it"。还有,希望在我的有生之年不要生RMS一样的
病。

*** TODO tab/dialog/toolbar的迷思-Emacs很土?

** WAITING 学习道路
学Emacs要比Vi难一些,甚至可以说,和学一个新的OS一样难。我大致估计了一
下,从入门到在潜意识层面运用Emacs(也就是不加思索地用它),大概花了我3
个月时间,和我学习Linux系统/指令的时间大致相当。

这期间,我几乎把能找到的有关Emacs的书都读了...呵呵,实际上只有3本。其
中第一本是大家都知道的动物书,另两本都是讲elisp的,"Elisp intro"和
"Elisp extension"。

但是,真正影响我的却是Steve Yegge blog,特别是他的"Effective
Emacs",Lee Xah的ErgoEmacs mode和org-mode网站上的tutorial。当然,还有
RMS写的info Emacs(这个文档不是给初学者看的)。

我的经验是要看到Emacs的优点和弱点,充分享受优点,学习如何克服弱点(书上
主要是对Emacs歌功颂德)。

** STARTED Emacs的key-binding与保护自己的手
Yegge和Xah可以说是我的Emacs导师(只是看过他俩的文章)。他俩的文章有共
同的特点,又臭又长且个人风格极强,呵呵,在这点上我也有向他俩靠拢的趋势。

Yegge和Xah用Emacs都超过10年,对它的优劣了如指掌。他们提到Emacs的一个巨
大缺点就是“伤手”(过度用Ctrl小指)。如果有人上过钢琴课就知道,老师一上来
先教小琴童“放松”,比如“甩手大法”。对于钢琴家,如果手弹废了,和变成白痴
没有区别。但是计算机课从来都没有提到这些,专家们对我们的职业病视而不见。

*** S. Yegge's blog:换ctrl和caps lock
如果你在用C-c, C-f, C-x的时候感觉手腕别扭,那就考虑一下Yegge的建议吧。
Yegge的建议(他把这个建议放在Effective Emacs最前面,可见其重要性)是换
左ctrl和caps lock(一些Unix机器上本身就这样安排)。原因是这样ctrl在中间
行,和其他键组合起来不会太吃力。我从一开始就采用他建议,大概用了2周时间
适应,现在用C-f,感觉舒服多了^-^,不用再把手腕扭来扭去。

*** STARTED Xah的ErgoEmacs
Xah则提出了更进一步的方案。一句话,尽量用Alt(大拇指)代替Ctrl(小拇指)。

** STARTED org-mode/artist-mode/spell-check
某vi支持者说:我恨Emacs,我用它只为org-mode。org-mode是北欧的一个计算机
教授在业余时间写的(看看人家的教授),开始时是为了弥补outline-mode的不
足。Emacs上的大多数应用是为程序员准备的,而不搞it的人也能用org-mode。

*** TODO org-table

** TODO dired/ibuffer/ido
如何切换文件

** TODO re/re-isearch/re-replace/rebuilder
re(regular expression)

** TODO compile/grep/gcc/gdb/make
compile在做什么?

** TODO vc/git
version control

** TODO others: calculator, shell/term, proced, rectangular

** Emacs的未来(23.1发布以后对Emacs新当家人的采访)
http://www.douban.com/group/topic/8356844/
(哎,那时候在国内还能看blogspot的copy,现在...)
其中的大当家Chong Yidong也许是中国人,物理博士后。二当家是一位计算机教
授。
要点:
1. 这两位当家人都是保守派人士,现有的key-binding和default customize基本不会修改。
2. CEDET有望在23.2时归入Emacs发布包。
3.新当家人希望release cycle缩短。Emacs有120名代码贡献者。

(草草完成,尚不完整。待续,先列提纲,等有时间补上)


最后由 davyzhu 编辑于 2009-12-14 16:03,总共编辑了 3 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 11:16 
头像

注册: 2005-12-28 1:16
帖子: 3914
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
看newsmth.org,EMACS版人气比Vim更旺,所以现在很难说哪个用户更多。

vi功能有限,vim自身的脚本不强,但vim也支持python/perl/ruby/tcl脚本,
可以很方便的使用那些脚本扩展vim的功能,所以elisp的优势不复存在。

其实很多时间我们都在阅读代码,vim的hjkl比emacs两键操作更加方便。


_________________
目前负债150多万


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 11:17 
头像

注册: 2009-06-14 22:16
帖子: 480
送出感谢: 0 次
接收感谢: 1
:)


_________________
想玩生化了。。。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 11:26 

注册: 2009-12-06 21:23
帖子: 109
送出感谢: 0 次
接收感谢: 0 次
xhy兄,

Readers' Choice Awards 2009里提到vi用户占四成左右,而emacs只能属于others,呵呵。
还有,我周围的同学,同事,朋友,大约有八成用vi,粗略估计。

http://www.linuxjournal.com/article/10451
Favorite Text Editor

vi (36%)

Honorable Mention

gedit (19%)

Kate (11%)

The more things change, the more they stay the same in the Favorite Text Editor category. Vi wins again with a solid 36%, with gedit and Kate taking Honorable Mention honors. Emacs and nano also are popular but just missed the cut.


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 11:37 
头像

注册: 2005-12-28 1:16
帖子: 3914
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
那些vi都是用的vim吧,真正用纯vi的已经很少了,
即使在AIX上,也不会忘记装一个vim上去的.

主观感觉是emacs的按键次数比较多,需要记忆的键位比较多。

虽然emacs消除了normal,ex,insert等模式,
但emacs引入的major和minor加起来也一箩筐了

vim是个简单的编辑器,emacs相对复杂,学习起来也困难些

我学过几次emacs,最终都以失败而告终,
因为太习惯vim了,QQ聊天的时候还输入过<ESC>:q

从体积上说,emacs过于庞大,我打包的windows版gvim,
插件和python.dll全在,也就4M,速度也非常快,emacs则要几十M。

国内几家互联网公司,vim用户大致是emacs数倍,但是从水木上看,emcas更加火


_________________
目前负债150多万


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 12:14 
头像

注册: 2008-03-25 15:49
帖子: 25877
地址: 谁知道?
送出感谢: 5
接收感谢: 10
org-mode :?

这帖死了 都要顶 (额是emacs 菜鸟)

习惯了EMACS的键绑定, ff+firemacs 回帖速很快 :lol:

一直用不惯VI的 :oops: 一般配置也用..

如果WIN下的pidgin里可以用emacs的绑定就好了.. :em06


davyzhu 写道:

最后,用一句话表达我对Emacs的感情,"Use it, love it"^-^

8-) :em11


_________________



页首
 用户资料  
 
7 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 12:41 

注册: 2008-11-13 16:03
帖子: 816
送出感谢: 0 次
接收感谢: 0 次
emacs 让人很纠结


_________________
HP ProBook4321s,I3+ATI
OS : Fedora + Debian

http://box-look.org/


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 12:48 
头像

注册: 2009-04-11 23:46
帖子: 3940
系统: Arch Linux
送出感谢: 11
接收感谢: 97
本人用Vim,但shell用Emacs的键绑定,Vim在插入和命令模式下也设置了Emacs式的键映射,火狐既不用Vimperator也不用Firemacs,mocp 设置了几个类似Vim我键映射,期待着在IM里可以用上Emacs的键绑定……


_________________
我的博客 http://lilydjwg.is-programmer.com/
Dropbox,你值得拥有。
提问的智慧
Arch Linux 中文论坛

我的vimrc: http://git.io/vimrc


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 13:05 
头像

注册: 2006-10-19 8:43
帖子: 786
地址: 长江口
送出感谢: 1
接收感谢: 2
我用的最多是vim,坚持偶尔用用emacs,虽然两边都是菜鸟 :em04

一个ESC到死,一个CTRL到死

要用好这两个神器都需要点编程基础
然两个的脚本系统相对来说是偏门——严格来说lisp不算偏,但就语法来说不是我们常见的basic、pascal、c、java之类
虽然都支持用其它脚本来扩展,比如python,但基本上没人会这么做


_________________
好好地做一个碌碌无为的人


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 13:22 
头像

注册: 2009-04-11 23:46
帖子: 3940
系统: Arch Linux
送出感谢: 11
接收感谢: 97
ibear 写道:
...
虽然都支持用其它脚本来扩展,比如python,但基本上没人会这么做

不会吧,我就在用Python扩展Vim啊。只是Vim得要python2.6,而我更喜欢Python3,有点郁闷……


_________________
我的博客 http://lilydjwg.is-programmer.com/
Dropbox,你值得拥有。
提问的智慧
Arch Linux 中文论坛

我的vimrc: http://git.io/vimrc


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 13:30 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
唉 .. vi 的编程语言学来学去都不会 ==


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 13:34 
头像

注册: 2005-12-28 1:16
帖子: 3914
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
lilydjwg 写道:
ibear 写道:
...
虽然都支持用其它脚本来扩展,比如python,但基本上没人会这么做

不会吧,我就在用Python扩展Vim啊。只是Vim得要python2.6,而我更喜欢Python3,有点郁闷……


gvim.exe还是2.4的,我自己编译了一个2.6的,
debian sid的vim用的是2.5,py3可能编译不过去,可以试试。


_________________
目前负债150多万


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 13:37 
头像

注册: 2009-04-11 23:46
帖子: 3940
系统: Arch Linux
送出感谢: 11
接收感谢: 97
xhy 写道:
lilydjwg 写道:
ibear 写道:
...
虽然都支持用其它脚本来扩展,比如python,但基本上没人会这么做

不会吧,我就在用Python扩展Vim啊。只是Vim得要python2.6,而我更喜欢Python3,有点郁闷……


gvim.exe还是2.4的,我自己编译了一个2.6的,
debian sid的vim用的是2.5,py3可能编译不过去,可以试试。

我试过了,不行 :em20


_________________
我的博客 http://lilydjwg.is-programmer.com/
Dropbox,你值得拥有。
提问的智慧
Arch Linux 中文论坛

我的vimrc: http://git.io/vimrc


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 13:39 
头像

注册: 2005-12-28 1:16
帖子: 3914
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
lilydjwg 写道:
xhy 写道:
lilydjwg 写道:
ibear 写道:
...
虽然都支持用其它脚本来扩展,比如python,但基本上没人会这么做

不会吧,我就在用Python扩展Vim啊。只是Vim得要python2.6,而我更喜欢Python3,有点郁闷……


gvim.exe还是2.4的,我自己编译了一个2.6的,
debian sid的vim用的是2.5,py3可能编译不过去,可以试试。

我试过了,不行 :em20


py3很尴尬,可能5年内流行不了,2.6还没普及,2.7正式版正在出


_________________
目前负债150多万


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 有关Emacs的一些思考
帖子发表于 : 2009-12-08 13:40 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 2
其实 vim 的用户数更高是毫无疑问的。emacs 的特性决定了它必然是个小众的东西。

另一方面,环境也是促使的原因,我当年用 vi,就是因为全办公室的人只有我一个不会用 vi,那么,不学 vi 都对不起人,所以就 vi 了。

至于 emacs ,毫无疑问他是个好东西。但是,最好的入门方式其实是有一个专家带领,如果身边找不到这样的人,那么要入门其实是个相当困难的事情。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 45 篇帖子 ]  前往页数 1, 2, 3  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译