Emacs入门教程(1)

我写连载文章一向是虎头蛇尾,通常连载不超过三期就没有了下文,曾经写过的Emacs入门教程也 是这样的情况。时隔两年,Emacs对于我来说已经从一个玩具软件变成了日常工作中不可缺少的一个工具,虽然对它的应用也还没到真正熟悉的程度,但至少对 它也有了更多的认识,所以准备对这个系列程进行一下更新,并丰富一下内容。前三篇会在以前写过的版本上进行修改,主要是把原先针对Windows平台的内容进行淡化,使得这个文章在各种平台上都可以适用。希望这个系列的文章能对刚刚开始使用Emacs的朋友有所帮助。记得有朋友做过这样的评论(2004-08-29 22:15:00),其实这真是件很轻松的事情,希望这个教程就可以帮助大家一起实现这个目标^_^

废话少说,下面开始正文……

也许很多人都听说过Emacs这个功能强大的编辑器了,但很多人可能不曾想到的是这个“最强大”的编辑器给人的第一印象几乎一定是“不知所措”,本文的目的,就是希望能给那些“不知所措”的朋友提供一个入门的机会,让Emacs能在日常的工作中助你一臂之力。

要使用软件,首先当然是要获得Emacs软件的程序包并安装它,很多Linux发行版都已经自带了Emacs,如果没有,您可以在http://www.gnu.org/software/emacs/emacs.html上的第5节Obtaining GNU Emacs中您可以找到它的下载地址。目前最新的稳定版本是21.4a,Windows平台上的是21.3版。值得一提的是,如果您需要在Emacs中处 理中文,也许21.4a的版本并不是最佳的选择,因为它对Unicode的支持还是非常的有限,我建议您直接从Emacs的CVS中Checkout出 Emacs 23的代码,然后自己编译使用。如果你不知道什么是CVS也没有关系,执行下面的命令就行了:

$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs

然后可以进入emacs目录,执行:

$ ./configure
$ make bootstrap && make install

就行了。

运行Emacs与运行其它软件一样,只要输入emacs就可以了。如果当前是在图形界面下,Emacs会显示它图形界面,否则就显示纯字符的界 面。如果要在图形界面的终端窗口中让Emacs以字符界面运行,可以输入emacs -nw来启动它,-nw表示No Window。

对于Windows版本的Emacs,不用安装,直接解压后就可以使用了,比如可以把它放在C:\Program Files\emacs-21.3目录中,以后可能会提到“Emacs的安装目录”就是指它。在Emacs的安装目录下的bin目录中有Emacs的可执 行文件emacs.exe,双击即可运行它出现图形界面,如果希望在控制台环境下以控制台风格来运行它,同样可以加上-nw参数。另外,运行bin目录中 的addpm.exe,可以自动为Emacs在开始菜单中建立一个菜单项。我还建议大家在系统的Send To文件夹中为Emacs.exe建立一个快捷方式,这样什么想用Emacs打开的文件都只要用右键点它选“发送到”Emacs就可以了。

相信到现在为止,大家已经看到Emacs不那么友好的界面了,刚启动Emacs时它会出现一个介绍的封面,点鼠标或按任意键就会切换到一个名为 *scratch*的Buffer,上面有三行注释,说你可以在这里随便写点不需存盘的文字,或者可以打一些要执行的Lisp语句,如果要创建文件,请按 C-x C-f。

在真正开始使用Emacs之前,请大家注意下面一点:

由于历史的原因,Emacs中很多术语、表示方法和操作习惯与现在惯用的不一致,在学习时要时刻记住这一点,避免混淆。在本文中,将遵循Emacs术语,并用英文表示。

开始编辑一个新文件的方法是按C-x C-f,这个表示法的意思是:先按一下Ctrl+x,然后再按一下Ctrl+f(当然你也可以按着Ctrl不放,分别敲x和f键)。这时,在Emacs的 Frame(在Emacs术语中,Frame是指我们平时习惯上说的“窗口”,而Window这个术语是指在一个Frame中的分隔出的几个区域)底部的 Minibuffer中会出现提示:Find file: ~/ (Windows中可能会是Find file: C:\Program Files\emacs-21.3\bin/),在这里就可以输入要新建的文件的文件名了,默认的路径就是它所显示的这个。输入一个文件名,它就会在 Emacs中新开一个空白Buffer用于编辑。如果输入一个已存在的文件名,就会在一个新的Buffer中打开这个文件用于编辑。也就是说C-x C-f是一个可以用于新建或打开文件的命令,难怪它在Emacs手册中被解释为Visit a file而不是New file或Open file。

在很多情况下,您似乎并不会仅仅在在默认的目录下建立文件,所以您可能需要把已经出现的默认路径清除再写您的实际的路径。其实不需要这样麻 烦,Emacs在很多很细小的东西上都做的非常人性化,您只需在它的默认路径最后一个/后接着打一个/就可以直接输入实际的文件路径了,比如,我不管它的 默认路径,直接输入/tmp/1.txt就可以建立或打开/tmp目录中的1.txt文件了,在输入路径和文件名时,可以只输入一部分,然后 按<Tab>键,Emacs会设法帮您自动补充完整。

如果要用鼠标来操作Emacs新建或打开一个文件,可以点File菜单的Open File一项。用键盘也可以选菜单,但决不是Alt+F之类的,您可以按F10键,然后再选项相应的菜单项,F10的表现形式在图形界面下和在文本界面下是不一样的,但操作方法一致。

Emacs的很重要的一个设计理念就是要让您的双手在整个操作过程中不离开主键盘(就是指字母和数字键这个区域),以追求最高的工作效率。所以本文中后面对鼠标操作的介绍会比较少。

现在您已经正确的打开了一个新的Buffer来编辑文件了,您可以试着输入一些东西。输入中,如果超过了行末,Emacs会自动换行并显示一个续行符。

也许您在输入过程中尝试了“复制/剪切/粘贴”这样的操作,结果一定很令人失望,常用的Ctrl+C/Ctrl+V等快捷键都不对了,再次提醒您记住,学习Emacs就要忘记以前很多的东西。当你慢慢熟悉Emacs,你会喜欢这个强大的编辑器的。

如果您发现在敲快捷键的过程中发生了错误,在大多数的情况下,您可以按C-g快捷键来中断当前的错误命令从头开始。比如您不小心按了C-s,这 是Windows中保存文件常用的快捷键,Emacs却在Mini-Buffer中提示您I-search:,这时就可以按C-g退出,返回正常状态,同 时 Minibuffer中会显示Quit表示退出了当前命令。

要保存文件,正确的命令是C-x C-s。要退出Emacs,正确的命令是C-x C-c,如果有Buffer中的内容修改了未保存,它会作相应的提示,如果您选择不存,它还要进一步确认是否真的要退出Emacs。

至此,您已经可以用Emacs打开或新建一个文件,编辑并保存,然后退出Emacs了。

也许您觉得我写得挺罗嗦的,进度也很慢,您可以不看我的文章,直接去阅读Emacs的教程,它用很精辟的方式描述了Emacs最基本的使用方 法。进入Emacs后,按C-h t(先按Ctrl+h,再按t键,注意不是C-h C-t)就可以阅读它了。目前发布的Emacs中还没有包含中文的教程,您可以在Emacs的CVS的etc目录中找到中文的教程,文件名为 TUTORIAL.cn(简体)和TUTORIAL.zh(繁体)。Emacs 23中包含了中文的教程,可以通过Help菜单中的Emacs tutorial (choose language)…打开。

Blog更新

今天对Blog进行了更新,主要涉及的是CSS的调整和留言的处理,所以大家现在看到的是一个崭新的页面了。

这是我第一次用DIV+CSS制作范合W3C标准的网页,不学不知道,一学才知道我以前一直所津津乐道的基于表格的网页布局方法早就已经被淘汰 了。基于DIV+CSS布局的网页,不但是布局方式的调整,更重要的是把原先以布局为导向的网页设计变成了以内容为导向的网页设计。以内容为导向的一个重 要好处是,即使你用的浏览器不能支持复杂的布局,比如我在Emacs中用的W3M,依然可以很好的把关键的内容表达出来。

除了布局的调整,还有一个重要的变化是在留言的处理上,尝试性的采用了一点点AJAX技术,现在每篇文章都可以分别评论了,而且查看文章评论也 变得简单了。不过这是我第一次尝试用AJAX,所以在很多方面处理都存在问题,慢慢完善啦。目前我已在IE6/7和FireFox 1.5/2.0上测试过基本上可以正常工作,而在不支持JavaScript的浏览器(比如W3M)上完全不工作,这一点以后会设法完善。另外,目前发表 留言后一率会返回首页,这个也以后再改进。

还有其它很多很多不完善的地方,一率慢慢改~

Valid XHTML 1.0 Strict & CSS Homepage

最近真是太忙了……今天终于可以休息一下,花点时间在优化这个Blog上。经过近两个小时努力,终于成功的调整了页面的生成规则,让本网站通过了W3C XHTML 1.0 Strict兼容性检测,自豪的在页面上加了上Valid XHTML 1.0 Strict的图标。下一步打算开始在CSS上花点功夫,看看可不可以美化一下。要从已经习惯了的基于表格布局的网页制作转变到新的XHTML+CSS的模式还真不是一件容易的事情。

通过了XHTML测试,突然想到CSS也可以测一下,结果是只发现了一点小问题,呵呵,毕竟这个CSS是从有经验的人的网站上“偷”来用的,看来质量还不错。于是再给本站加上一个Valid CSS的图标:) 希望在后面经过我美化后还可以继续顺利通过这个测试。

招商银行vs自由软件

Bill Xu声势浩大的《致招商银行的公开信》(FSF官方新闻)活动似乎从一开始就不很顺利,同为GNU CTT成 员的我虽然不是完全赞成他所采用的形式,不过在活动开始之初还是发邮件支持了他的行动。但在很多论坛和新闻站点上,网友对这次活动的还是有很多质疑。一周前活动主要站点wiki.billxu.com发生故障,而今天这个计划中作为与招商进行线下对话的特别的日子,也终于在平静中渡过了。虽然Bill表示 活动仍然会以“把收集到的正式的意见打印出来,邮寄给招商银行”的形式继续,但不难看出自由软件在中国的推广依然是任重而道远……

Red Hat Enterprise Linux 5 发布

自从知道了CnBeta这个网站,从上面获知了不了少的信息和IT八卦,不过一直是只看贴不回贴。今天RHEL5发布,算是Linux界的一件大事,那里居然是反正迟顿,一点动静也没有。忍不住就向它投递了这条新闻

在经历了两次跳票以后, Red Hat于2007年3月14日正式发布了RHEL5. RHEL 5将是Red Hat的商业服务器操作系统版本的第四次重要版本发布, Red Hat酝酿发布RHEL 5已经超过了两年, 主要变化包括Linux内核由2.6.9升级为2.6.18, 支持Xen虚拟化技术, 集群存储等.

RHEL5的版本主要分为Sever和Desktop两个版本。

具体来说,Server版本分为:

· Red Hat Enterprise Linux Advanced Platform – 对应以前的Red Hat Enterprise Linux AS

· Red Hat Enterprise Linux – 对应以前的Red Hat Enterprise Linux ES

Desktop版本分为:

· Red Hat Enterprise Linux Desktop – 对应以前的Red Hat Desktop

· Red Hat Enterprise Linux Desktop with Workstation option – 对应以前的Red Hat Enterprise Linux WS

主要的功能包括:

  1. 虚拟化技术

在各种平台上支持虚拟化技术

在Red Hat Enterprise Linux Advanced Platform支持存储与扩展的服务器虚拟化技术

Red Hat Network提供各种虚拟化系统的支持

virt-manager, libvirt/virsh管理工具

  2. 内核与性能

基于Linux 2.6.18内核

支持多核处理器

广泛的新硬件支持

更新的基于Kexec/Kdump的Dump支持

支持Intel Network Accelerator Technology (IOAT)

对于大型SMP系统技持的增强

增强的管道缓存

内核缓存接合能力用于改进IO缓存操作

  3. 安全

SELinux增强

图形化SELinux管理界面

集成的目录和安全机制

增强的IPESEC提高安全与性能

新的审计机制用于提供新的搜索、报表和实时监控的能力

  4. 网络与互操作性

支持Autofs, FS-Cache和iSCSI

增强的IPv6支持

改进的Microsoft®文件/打印和Active Directory集成

  5. 桌面

更新的管理工具、应用程序和对笔记本的支持

改进的ACPI支持,包括Suspend to Disk

智能卡登录,包括PKI/Kerberos认证

集成的多媒体支持

增强的即插即用支持

Network Manager提供自动的有线和无线网络配置

基于AIGLX/Compiz的图形化界面(支持淡化、透明等效果)

  6. 开发环境

增强的开发工具,包括System Tap和Frysk

GCC4.1和glibc 2.5工具链

  7. 存储

支持根设置多路IO(MPIO),提高可用性

服务器产品中包含单系统/客户的Red Hat Global File System支持

块设备数据加密支持

  8. 管理

安装过程更新简化系统配

基于Yum/Pup的Red Hat Network更新

Conga集群和存储管理

  消息来源:www.redhat.com