QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2769|回复: 10

【GNU/Linux实战手记之Emacs篇 上】

[复制链接]
发表于 2003-9-12 10:39:40 | 显示全部楼层 |阅读模式
【GNU/Linux实战手记之Emacs篇 上】
作者:叶魏彬 MSN:[email protected]
Copyright(C)Free Software Library,Org(http://yea.xiloo.com)
本文依照GNU Free Document Lience发布,任何人都可以将本文原封不动的复制、转载,但请务必保留此声明。作者不对本文所导致的任何结果负责。
五、Linux下的常用软件--Emacs
   有了上面的基础,你已经可以自由的使用Linux的控制台了。但是,光靠这些,你还不能编辑和修改文件,不能归档和压缩(解压缩)文件,不能享受影音娱乐和多媒体。在控制台下,我们确实可以做很多事情,包括听音乐。下面我们来看看控制台下最强大的应用软件--Emacs
Emacs是Linux下的强大的文本编辑环境,说它是一个单纯的文本编辑器就太小看它了。说出来别被吓到,Emacs可以编辑文件,浏览互联网,访问FTP,收发电子邮件,使用控制台命令,编译和调试程序等等。它简直可以充当一个操作系统了!但是,正是因为它拥有这么多的功能,使得想学习使用它的人必须经过一段痛苦的历程。Emacs实在是太复杂了。
   让我们现来见识以下Emacs的庐山真面目吧。
$emacs newtext.txt       /*启动Emacs,用它来创建一个新文件newtext.txt*/
   如果你是在控制台下开的Emacs,那你可以忽略最上面一行的菜单栏。它在控制台下是没用的。这一点和MS-DOS下的EDIT完全不同。开始的时候我就很不习惯没有Alt-F召唤出的菜单。但是这并不意味Emacs就没有菜单。它有。你按下F10看看(或者Esc-`)。那就是它的菜单。你可以按照它的提示使用。退出菜单用Ctrl-g或者连按三下ESC(这是退出一切Emacs命令的通用方法)。
   我们已经新建了一个文件,你现在可以直接输入文字了。这和普通的文本编辑器没区别。
保存文件的方法是“Ctrl-x Ctrl-s”;文件另存为是“Ctrl-x Ctrl-w”;打开新文件是“Crtl-x Ctrl-f”;退出Emacs是“Ctrl-x Ctrl-c”。还是那句老话——晕头转向了就退出,没什么可怕的。
   在Emacs里有很多向上面的使用组合键的命令。这也是Emacs的复杂之处,需要背的命令太多。记不住了,你可以使用它的菜单。在X下你可以使用鼠标和它的菜单栏(菜单栏这时才有用)。
   Emacs是支持多文本多窗口同时编辑的。因此你可以打开多个文件,然后在不同的“窗口”中切换。——注意,Emacs中用Buffer(缓冲区)表示我们平常概念中的窗口,你就当它是一块内存区域。我们用菜单查看现存的Buffer:Esc-` b
   看到现有的各个Buffer了吗?你可以用提示你的按键切换到那个Buffer中。(Buffer列表有个快捷键:Ctrl-x Ctrl-b)
   Buffer既然可以打开,那么它就能被关闭。当我们嫌开的Buffer太多,或者不再需要某些Buffer时,我们就可以将那个Buffer关掉。
   调出菜单,依次选择File,Close(current buffer)。或者你也可以按下列次序按键:
ESC-` f c
   我说过,Emacs是一个集成的编辑环境,它可以运行Shell,这就是它的伟大之处,也是世界上顶尖黑客喜爱它的缘故。让我们试试。
Alt-x shell
   Emacs就会乖乖的打开一个新Buffer,而你的控制台提示符就在你眼前。还不试试前面学的各种命令。不过用完了要记得exit退出(这里也能用Ctrl-D)。
   至于游戏嘛,我告诉你它在哪儿——tools->game。自己慢慢研究吧,里面可是有五子棋和跳棋的哟。
   Emacs自带一个很详细的帮助系统,在你需要帮助的时候,按Ctrl-h t,就可以调出帮助教程(Tutorial)。里面详细介绍了如何使用Emacs,是Emacs的官方手册。只可惜,是英文的,对我们这些英文不佳的人来说困难了点。
   Emacs就介绍到这里,有关它的更清晰的使用介绍,请参阅IBM DeveloperWorks/Linux里的教程:《生活在Emacs中》找不到就联系我,我给你一份。
实验:就用Emacs修改你的/etc/fstab和/etc/lilo.conf文件。
六、Emacs高级应用
   前面介绍了Emacs,和一些基本的Unix命令。下面我们将开始接触一种脚本语言Bash(Bourne Again Shell)。Bash很像DOS下的批处理语言,但是要比批处理强大许多。掌握了Bash,你就有更多在Unix闯荡的资本;而Bash强大的功能,也足以让你驾驭野性的Linux。本单元学习要求:你至少应了解基本的计算机编程的概念,知道变量、常量、循环、条件判断等编程语言的基本术语。这样不至于我是在对牛弹琴,也不必浪费你的宝贵时间。
   今天我们就要在Emacs环境中,“足不出户”,进行Bash编程的学习,同时还可以听着美妙的音乐。
   先进行些准备工作———如何安装软件。
   对于刚接触Linux的人而言,最令他们头疼的,不是一大堆的命令和参数,而是没有自己所熟悉的软件。再好的系统,没有大量的软件作支撑,也生存不下去(IBM的OS/2就是个典型的例子)。但是现在,GNU/Linux可以使用的软件很丰富,你可以上网搜索,就会找到几大专业的Linux软件搜集下载站点,里面的软件储量很丰富的。
   下载你需要的软件包,按照下面的方法安装软件。
1、编译安装源代码包
   实际上,绝大多数Unix软件都是以源代码形式发布的,这样做的好处就是,用户可以根据自己系统的实际情况对软件进行修改。下面我们来看看如何安装源代码包。
    目标软件:zhcon-0.2.3.tar.gz       Linux Console Chinese System
#mkdir temp                         /*建立一个临时目录*/
#cp zhcon-0.2.3.tar.gz temp/        /*将包拷到临时目录中*/
#cd temp
#tar vxzf zhcon-0.2.3.tar.gz        /*解压、归档一步到位,这时将生成一个新的目录*/
#cd zhcon-0.2.3
#./configure                        /*配置编译环境*/
#make                               /*开始编译*/
#make install                       /*安装*/
   至此,zhcon就装好了。最后三步就是安装源代码包的标准操作。执行./configure后安装程序会告诉你程序安装后的所在目录。要卸载该软件,就直接删除该目录即可(别忘了还要删掉/usr/local/bin中的执行命令zhcon)。
2、用RPM安装.rpm包,.src.rpm包
   RPM是Redhat Package Manager,是RedHat公司做的自动化安装工具。我们用它来装一个MPEG播放器:CandyPlayer
#cp candyplayer-0.1.1-1.i386.rpm temp/
#cd temp
#rpm -ivh candyplayer-0.1.1-1.i386.rpm   /*这里是软件包的全名*/
   安装时会显示一个进度条,告诉你安装过程。RPM安装之前会先检测系统的完整性,看是否缺少文件。如果缺少所需的文件,则拒绝安装,屏告知所缺的文件。
   有时候我们会碰到用RPM打包的源代码.src.rpm,这时就需要我们自己编译。安装这样的包只需要改变RPM命令的参数。
#rpm --rebuilddb target.src.rpm       /*假设软件包叫target.src.rpm*/
   要删除已装的软件,只需下面的命令
#rpm -e candyplayer                      /*这里是软件的名字*/
   用RPM就这么简单。
3、安装二进制程序
   有些软件商不愿公布源代码,因此它们直接将软件做成一个大的安装文件。下面就来装一个这样的东西。
   MusicMatch Jukebox想必大家不陌生吧?非常优秀的一款音乐播放软件。它出了一个Linux版本,单个二进制安装文件-install-mmjb-1.43.sh。我们来装它。由于它必须在X下安装,我们就假设已经有了窗口环境。打开一个控制台窗口。
#cd /temp
#./install-mmjb-1.43.sh
   接着就开始安装了,和Windows下安装软件的过程类似。须注意一点,这个软件允许普通用户安装,但是不能向/var目录添加链接,只能装在自己的主目录中。
   以上就是Linux系统安装各种软件的方法。下面进入今天的正题。
   先从www.mpg123.de下载mpg123-0.59r.tar.gz和playmp3list.tar.gz这两个软件包。启动Emacs,新建Shell缓冲区,su升变成root,安装上述这两个包,还原成普通用户。安装顺序是先装mpg123-0.59r.tar.gz,再装playmp3list.tar.gz。
   新建一个Bash脚本addmp3
C-x C-f addmp3    /*C-x就是Ctrl-x,同理M-x就是Alt-x或者ESC-x,下同*/
   在新的缓冲区里输入下面的命令
#!/bin/bash
# Add MP3 files to my playlist file ~/playlist.m3u
find ~/music/ -iname *.mp3 >> ~/playlist.m3u
   存盘
C-x C-s
   这样,就有了我们的第一个Bash程序——addmp3。它将搜索存放在你主目录下music文件夹里的所由mp3格式的文件,然后生成播放列表playlist.m3u。
   切回Shell,执行addmp3
$chmod +x addmp3     /*变成可执行文件*/
$./addmp3      /*运行*/
   这样就生成了播放列表。把它放到/usr/local/bin下面,以后你就可以在任何一个目录下运行addmp3了。当你添加了新的mp3文件时,就在那个目录下运行这个程序,它将把新文件追加到播放列表里。
   接下来我们到另一个控制台下去运行playmp3list。
Alt-F2     /*切换至tty2,登录。*/
$playmp3list playlist.m3u
   我为什么不在Emacs下运行playmp3list呢?因为playmp3list程序运行时用到了ncourse库,生成了伪图形界面,在Emacs里效果很难看,所以我就不在Emacs里用它了。何况Linux是多用户多任务的操作系统,你可以在不同的控制台下执行不同的程序,就象多开了几个窗口一样。而且各个控制台互不干扰,所以你完全可以在另一个控制台下执行playmp3list,照听音乐不误。
   用Alt-F1再切回来,继续我们的工作。
   
   Emacs实在是太复杂了,所以今天我们就先到这里吧,还有一些Emacs使用技巧和有关Bash编程的部分留到【GNU/Linux实战手记之Emacs篇 下】再详细讲解。
   什么?我没讲Bash编程吗?那addmp3是什么?试着先理解它。
发表于 2003-9-13 08:10:54 | 显示全部楼层
看完了呀,不过不能上国外网,很多东西着不到,不爽
回复

使用道具 举报

发表于 2003-9-13 11:15:50 | 显示全部楼层
emacs本身就有很多的资料呀,在emacs里就可以看的
回复

使用道具 举报

发表于 2003-9-13 20:52:55 | 显示全部楼层
那些蚂蚁爬出来的字看起来就是不爽~哎,为什么中国的科技不是世界第一啊~看来还需要几代人的努力呀
回复

使用道具 举报

发表于 2003-9-13 23:06:25 | 显示全部楼层
我最近也在学习emacs,我是按照这样的思路来学的:
1、先掌握新建、打开、保存、另存、退出、撤消、重做、查找替换、剪贴板等记事本拥有的功能;
2、接下来熟悉比较实用和常用的编辑命令,取代EditPlus等编辑器;
3、学习emacs更多的功能,全面掌握了解emacs指令和强大功能。
回复

使用道具 举报

发表于 2003-9-14 16:49:26 | 显示全部楼层
我就不同了,我是 看书,记命令,然后用,唉~~就是热键太多
回复

使用道具 举报

发表于 2003-9-21 14:58:19 | 显示全部楼层
现在,正琢磨Emacs的有关配置问题。头疼阿
其实基本操作时在应用中熟悉起来的,用的多自然就记到了。
回复

使用道具 举报

发表于 2003-9-23 15:18:48 | 显示全部楼层
使用才是最好的学习方法!
回复

使用道具 举报

发表于 2003-9-25 18:44:53 | 显示全部楼层
我早就听说emacs的强大,也极其难用,所以我一直用的都是vi!
回复

使用道具 举报

发表于 2003-9-27 09:37:31 | 显示全部楼层
以为强大才要使用,但不能因为困难而放弃,你说是不?
回复

使用道具 举报

发表于 2003-12-18 03:00:12 | 显示全部楼层

Re: 【GNU/Linux实战手记之Emacs篇 上】

什么破文章! N多落后的观念, 而且一看就是个菜鸟写的.
要学用 Emacs 的话还是去找篇新点的文章吧.
翻译的关于 Emacs 的书籍也有不少了, 可以去买本, 比如: "学习 GNU Emacs"
E文照的话看 Emacs 里的 info 文档中的
Emacs, Emacs-Lisp-Intro(这本的中译本也早出版了) 和 Elisp 也基本上够了.

实在解决不了的问题可以到 irc.freenode.net 上 #emacs 频道去打听.

[quote:cc4740cb32="zhigangc"]【GNU/Linux实战手记之Emacs篇 上】
作者:叶魏彬 MSN:[email protected]
Copyright(C)Free Software Library,Org(http://yea.xiloo.com)
[/quote]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 05:43 , Processed in 0.067106 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表