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)
页面执行时间:4.265毫秒