免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4240 | 回复: 0
打印 上一主题 下一主题

转贴:Emacs强在哪里及如何学习Emacs [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-11 14:30 |只看该作者 |倒序浏览
宣传一下我自己的blog,原文带格式看起来更方便些:
http://www.cublog.cn/u/13684/?u= ... howart.php?id=73297

Emacs强在哪里及如何学习Emacs
方伦钢

下文中Emacs均指GNU Emacs,XEmacs与GNU Emacs相似。
转眼用Emacs已经有两年,越来越心悦诚服于它的强大功能。常常是我脑子里闪出个念头“如果Emacs有这个功能就好了”,结果一查手册,嘿,Emacs还真的就已经预备好了。
想到刚开始时自己的将信将疑;我相信很多朋友看着不起眼的Emacs界面肯定也想象不出Emacs究竟有什么好,更别提改用Emacs了。本着“好东西要大家分享”的精神,我就结合自己这两年来的心得简单介绍一下我认为很强、很实用的Emacs的功能并就如何学习Emacs发表一下自己的想法。希望能对想了解的Emacs的朋友有所帮助。如果能因此拉几个人入伙更好。由于篇幅的限制,Emacs的抓图就不奉上了,也许有空的话我可以上传几张到blog(http://jixunuli.cublog.cn)上。
Emacs的优点
1.        首先,Emacs是“跨平台”的。大部分操作系统(UNIX、windows)都有相应的Emacs。所以不用担心换了开发平台后又要重新学习一种新的编辑器。而且许多操作系统默认就安装了Emacs。
2.        Emacs的文本编辑功能十分强大,特别是对编程的支持,感觉十分贴心。毕竟Emacs是程序员开发的,程序员最清楚哪些功能能帮助程序员编程。
3.        Emacs高度可定制。这给我们充分的自由。当然如果不愿(或暂时不会)定制,完全可以用默认的配置。
4.        Emacs高度可扩展,而且各种扩展的风格统一。据说Emacs的设计使得它十分易于扩展。设计上的问题我不清楚,但是从用户的角度来看,Emacs安装插件确实很方便而且插件也确实很多。尤其是对与程序开发工具的集成(如gcc,cscope等)提供了极大的方便。经过配置,Emacs简直就是一个IDE。
5.        Emacs提供图形的交互界面,但同时又彻底支持命令行模式,用户仅用键盘就可以实现所有的操作。键盘比鼠标方便?很多时候是这样的,要不然为什么快捷键叫“快捷”键。
Emacs的功能
本节,我将简单介绍一下我在日常使用中感觉比较方便的、Emacs21.3安装包自带功能和插件:
·        强大的文本编辑功能:
o        对许多编程语言(如c/c++/java/sql/shell等等)的支持:语法高亮、代码缩进、多种形式的代码折叠、块操作等等;还可以通过安装插件支持新出现的语言。安装插件color-theme后可以方便的改变语法高亮的颜色。
o        代码补全(hippe expand)与IDE常见的代码提示不太一样。二者各有千秋,如果能兼具两者最好了(eclipse就两种功能都具备)。
o        自动代码插入。主要三种形式:一是abbrev:输入缩写自动替换成完整形式;如输入“cc”自动替换成“const_cast”。二是skeleton:输入命令后,自动在选中的代码周围加上预制的代码;例如我选中一段代码然后输入命令“trycatch”,选中的代码就会被包裹在try/catch块中。Skeleton还可以定义成abbrev。三是auto insert:创建文件时根据模板自动生成代码,例如版权声明。
·        EDIFF
Ediff是Emacs集成的比较与合并(merge)文本文件内容的工具。有了它,你可以方便地比较两个(或三个)不同文件、文件夹。较其它比较工具而言,它的特点是它与编辑器(即Emacs本身)集成在一起,所以在比较的过程可以方便的编辑被比较的文件。例如语法高亮仍然有效。
它还提供了对版本控制工具的支持,例如用ediff-revision命令可以方便的比较不同版本之间的区别。
·        CVS与VSS
Ediff的一个重要用处就是为版本控制提供帮助。Emacs自带了CVS等传统版本控制工具的接口,使用这些接口可以非常方便地调用CVS等。比直接在命令行使用CVS方便多了。
如果使用微软的VSS,安装一个名叫“source-safe”的插件就行了。
·        Dired
在命令行模式下,删除、拷贝、重命名等文件操作有时是件挺麻烦的事情。常常需要键入了一长串的路径和文件名;在命令执行后才发现命令写错了。如果还和我一样总记不住路径的话就更麻烦了。
在Dired模式你可以方便的进行单个或批量文件操作:新建、删除、查看、复制、重命名、查找(包含某字符串、正则式的文件)等。
·        Eshell
Eshell是用Emacs的专用语言elisp实现的shell。启动后它内嵌在Emacs中。因为这个特点,它可以充分利用Emacs的资源,好处真是妙不可言呀,只能说“谁用谁知道”。
·        Cscope
Emacs还有cscope的接口。利用该接口,你可以在编码的过程中随时使用cscope查找函数、变量等等。同样,比直接在命令行使用cscope
·        GCC、GDB、CC、DBX
Emacs内置以上四种编译器、调试器的接口,呈献给用户一个可视化的编译、调试环境。无论是编译还是调试时都可以方便的定位到想看的源码上。
·        Speedbar
Emacs内置的工具,类似于IDE中常见的浏览窗口。也是ECB的基础之一。
·        Color-theme
前面已经提到过了。Emacs是高度可配置的,所以你可以定制语法高亮的颜色搭配。但是我这样缺乏美术细胞的人是不可能配出好看的语法高亮来的。幸好有热心人写了插件color-theme。它提供了很多配色方案,肯定有一款合你的意。我选的是gnome2。
·        Tabbar
有了tabbar,Emacs会将所有打开的文件以tab页的形式显示出来(就像ultra-edit那样)。
·        ECB
全称是Emacs code browser,安装之前要先安装cedet。我认为它是speedbar的升级品,看上去很花。但老实说,我觉得熟悉Emacs后,它的用处不大。刚开始用Emacs时有它可能会觉得方便些。
·        Ange-FTP、emacsclient、gnuclient
Ange-ftp让你能够方便的编辑远程ftp服务器上的文件(和Ultra editor的功能一样)。
Emacsclient和gnuclient使得Emacs成为一个文本编辑的server,可以方便快速地将编辑文本的工作转到Emacs上。本人表达能力有限,没用过Emacs的人可能不知这句话所云,否则就知道这是一个很好的功能。
·        WOMAN
Emacs集成的看man page的工具,比MAN(unix自带的工具)要方便。WOMAN(对应于MAN)这个名字体现了大牛们的幽默,全称是With Out Man。
·        VisEmacs
用惯了Emacs后,也许就会和我一样无法忍受VC的代码编辑器了。不得不用VC开发windows的程序时,VisEmacs可以减轻我们的痛苦。给VC装上这个插件后,编辑界面没有任何不同,但是编辑代码时就会自动转到Emacs。
如何学习
以上说了这么多,也许你会关心要花多大代价才能全部掌握。确实,要体验Emacs的强大需要花些时间,但是绝对不需要花很多时间。当然啦,如果你愿意,你可以持续的投入时间,从Emacs持续的得到回报。曾经,我一度把看Emacs手册作为放松,因为每次看都能学到一些让我happy的新技巧。

Emacs入门只需要也*必须*要学习Emacs的一些基本概念。这大约需要一个小时左右。Emacs自带的手册使用很方便,也写得很好(再次向Emacs及其手册的作者们致敬)。启动Emacs后可以用鼠标从菜单栏打开手册。搞清楚buffer、mode、kill ring、undo ring、region、ctrl键、meta键等概念就算会用Emacs了。如果你是Viper(习惯使用vi的人),你也许会需要一些时间来适应。需要提醒的是:Emacs启动相对较慢而且设计Emacs时设想的应用就是同时编辑多个文件。所以一般只需也应该只启动一个Emacs进程才能充分利用Emacs的好处。我现在的工作场景是:每天早上一上班就远程登录到Solaris服务器上,然后启动Emacs;接下来所有的工作都通过Emacs完成,登录shell的作用几乎只是用来启动Emacs;下班时,退出Emacs关机走人。

会用Emacs之后就可以开始用它进行工作了,遇到需要什么功能的时候再现学什么功能。前面提到的那些功能都很容易掌握,一般花几分钟看看手册就行。别忘了,各种扩展的风格是统一的,所以有时不看手册,想当然的去操作也没错。倒是各种各样的小技巧多多益善,积累起来需要一些时间。但那只是锦上添花,不用急着学会。如果使用过程中遇到一些小问题,可以上网查。网友们的热心程度是毫无疑问的。

一个合适的配置文件能让Emacs更加贴心。找一个现成的配置文件,然后根据需要修改成自己的配置是不错的办法。我的配置文件可以在我的blog上找到(http://www.cublog.cn/u/13684/?u= ... howart.php?id=72609)。

资源
www.gnu.org
GNU的老巢,也是Emacs的官方网站。
www.emacswiki.org
大量的Emacs资源。很多牛人也在上面,或许回答你问题的就是Emacs的开发者呢。
www.linuxfrum.net
中国linux论坛。里面有个专门的Emacs版。Emacs使用中遇到问题可以到这来查、来问。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP