Linux 版 (精华区)

发信人: howdoit (教练让我上场!!!), 信区: Linux
标  题: Emacs入门
发信站: 哈工大紫丁香 (Tue May 18 08:40:53 1999), 转信

《Linux公报》……让Linux更富魅力!

                        Emacs入门

                      By Paul Anderson    翻译gaia

     Emacs本质上是个相当难用的程序.甚至很少有人能知道如何从

Emacs退出,更别说怎么使用了.在这篇文章里我不准备介绍设置emacs

的方法,因为那是一项我也没能掌握的高超技术. 

    我假设你已经安装了emacs.在命令提示符下,键入: 

emacs

    Emacs将启动并出现scratch缓冲区,scratch缓冲区仅仅用于写入

一些不打算保存的东西.所以我们必须在启动emacs时从命令行给它一

个文件名.要做到这一点,我窍纫顺macs(当然也可以按C-x C-f,再

输入文件名,创建一个与文件相关联的缓冲区).按C-xC-c(按住CTRL键,

然后按x接着按c),就可以退出了.现在,我们启动 emacs并带一个文件

名: 

emacs bork.txt

    屏幕看起来是这个样子: 

Buffers Files Tools Edit Search Mule Help

----:---F1 bork.txt (Text)--L1--All-----------------------------------

(New file)

    现在来看看位于底部的状态栏.它显示了我们要处理的文件名,告

诉我们使用的是Text模式(关于emacs的模式后面有更多的介绍),现在

位于第恍并且整个文件都被显示了.下面的例子是我屏幕上的状态

栏,看看当编辑一个有内容的文件时是什么样子: 

----:**-F1 emacs.html(HTML)--L59--70%----------------------------------

    两个*号表示,自从我上次保存,文件已被改动过了;我编辑的文件

叫 emacs.html,emacs在使用其HTML模式;光标位于59行,目前位置是文

件总长的 70%.现在向空文件bork.txt输入一些文字,注意**号及行数.

现在保存你的大作!按 C-xC-s(就是按下CTRL,然后按x接着按s).这时

底部会出现 

Wrote /home/paul/bork.txt

    你已经保存了你的作品!我们退出emacs并在重新启动它时带上我

们的文本文件名.你可以确认文件已经被保存.以上就是你和emacs打交

道所需的最基本知识,现在继续前进... 

一些特殊模式

    Emacs带有一个内建的LISP语言解释器,所以可以通过对emacs编程

完成各种各样的任务.这使它能恰当地处理HTML,SGML,shell脚本,C代

码,texinfo和TeX源文件 ,等等.对一个可编程计算器常做的事情就是

为它们写游戏,这也差不多就是对一个像emacs这样的可编程文本编辑

器所要做的.emacs有一个LISP版的Eliza,这是一个经典的仿人工智能

程序.在这里它被设计成一个心理分析家.我们以下的内容需要一点小

技巧,因为运行这些模式的标准键叫"Meta"键.PC没有专门的Meta键,所

以通常被映射到某一个ALT键或CTRL键.(按一下ESC键也会起到M-的作

用,在我的机器上X下的emacs把win95键映射成了Meta--译者注).按

M-x,先试试左右ALT键,然后试试左右 CTRL键,当你按了正确的键时,底

部显示栏将出现M-x,后面是光标.现在键入doctor ,按enter.你的屏幕

上将出现如下文字: 

I am the psychotherapist.  Please, describe your problems.  Each time

you are finished talking, type RET twice.

    接下去你可以和医生聊一会儿.还是挺有趣的... 

    这么快就回来了?确实,聊上一段时间就会觉得乏味...既然你已经

回来了,我们将写一些C代码,来看看使用emacs的好处.我想让你启动

emacs,编辑~/.emacs文件. 

    在这个文件里写入下面内容: 

(add-hook 'c-mode-common-hook

          '(lambda () (c-toggle-auto-state 1)))

    第一眼看上去似乎不知所云.这实际就是LISP代码.看到它们你就

会明白为什么有人 嘲笑地说LISP的意思就是"许多恼人的,多余的括号

"(Lots of Irritating Superfluous Parentheses. ).幸运的是你现

在还不必学习 LISP,尽管要对emacs做大量设置工作时你必须要学(上

面这几行的意思也很简单,当emacs切换到C模式时,将执行

c-mode-common-hook这个hook变量所规定要执行的一系列函

数,add-hook把一个新函数加入这个hook,这样当emacs使用C模式时,执

行(c-toggle-auto-state 1),能在你输入程序时,把换行符自动插在括

号,分号,冒号等特殊字符的后面.Emacs在编辑以.c结尾的文件时会自

动使用C模式,也可以用M-x加 模式名切换到指定模式--译者注).保存

这个文件,然后启动emacs编辑一个叫 foo.c的文件 

    输入以下内容: 

#include <stdio.h>

main(){printf("\nHello.\n");}

    和在这里看到的不太一样,对吗?注意一下emacs是如何自动地在合

适的位置缩进编排代码,并且提醒你括号的匹配.如果你不用C编程,你

将体会不到这有多棒(进入C模式后,按C-h 再按m,将出现对当前模式的

描述和一系列有用的快捷键.您 可以发现按C-c C-a同样可以启动

c-toggle-auto-state,其标志就是在状态栏中出现 (C/a)--译者注).

相信我,如果你需要写大量代码,它正是你想要的! 

    Emacs为HTML,SGML,甚至纯文本都有类似的相应模式.它可以读

e-mail,news,浏览 web.Emacs包罗万象,各种工具一应俱全.阅读一下

文档,使用它,逐渐地emacs就会在 你手中发挥出它的全部威力. 

更多的信息: 

      按C-h t,阅读emacs自带的联机教程 

      按C-h i,阅读info文件 

      按C-h F,看看emacs的FAQ 

希望这些对你有用, 

--Paul Anderson, paul@geeky1.ebtech.net 

                       版权所有 (C) 1998 NJLUG

          出版于第35期《Linux公报》1998年12月 中文版第二期

                            


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
※ 修改:.howdoit 于 May 18 09:12:37 修改本文.[FROM: dns.mtlab.hit.ed]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.375毫秒