我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 发现内网关于工具方面的使用资料很少,发几篇emacs的 隐藏签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

独飞の孤心



性别: 帅哥 状态: 该用户目前不在线
头衔: 孽缘!
等级: 荣誉会员
家族: 单身贵族
发贴: 4484
威望: 3
浮云: 496
在线等级:
注册时间: 2005-10-12
最后登陆: 2011-09-23

5come5帮你背单词 [ disease /di'zi:z/ n. 疾病 ]


发现内网关于工具方面的使用资料很少,发几篇emacs的

[backcolor=#FF0000]实战手册(上)


五、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是什么?试着先理解它。 
本帖最近评分记录:
  • 浮云:15(yunyue)


  • 无处安放的青春II -- 该把爱放哪儿才安全

    顶端 Posted: 2008-04-25 15:55 | [楼 主]
    独飞の孤心



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 孽缘!
    等级: 荣誉会员
    家族: 单身贵族
    发贴: 4484
    威望: 3
    浮云: 496
    在线等级:
    注册时间: 2005-10-12
    最后登陆: 2011-09-23

    5come5帮你背单词 [ offend /ə'fend/ vt. 冒犯,触怒,使不悦 ]


    [backcolor=#FF0000]实战手册(下)

    十、定制你的Emacs 
              其实,有关Emacs的争论一直没有停息过。有人坚持Emacs是个庞大的史前生物,也有人坚持Emacs是神造的万能工具。总之,一切都是围绕着它的复杂性而论。毋庸置疑的,单作为一个文本编辑器而言,Emacs的确是太庞大了(它足有70多兆!)。但是,如果把Emacs视为一个环境(它也的确是一个环境),则它是非常优秀的,70兆的体积也就不算什么了。作为普通用户,我不推荐你去使用Emacs,vi就可以了--但我不并不是在贬低vi,相反,vi同样是令我们尊敬的一个优秀的编辑器--它将复杂性隐藏在了幕后,通过各种命令实现,而这些命令我们也许永远也用不到,所以我们不必去理睬它,它就是一个小巧、简洁和直观的文本编辑器。但是如果你是一个程序员,或是系统管理员,你所关心的就不会是绚丽的界面,而是强大的功能和工作的效率。而这就是Emacs能带给你的。平心而论,Emacs并不比我们平常所惯用的其他编辑器,如UltraEdit、TextPad、EmEditor等难用多少,只是我们在使用Emacs的时候,要从新适应Emacs定义的快捷键罢了。而正是这一点,给许多浅尝辄止的人眼前蒙上了一层纱,他们也就以讹传讹,大肆宣扬起Emacs的“复杂”来。其实,一旦你熟悉了它的快捷键,你就能像用其它软件一样自如。 
              (如果你只是为了写几个字,你会固执的坚持使用Word吗?如果你要写C/C++程序,你会用Word吗?要是我,我宁可用notepad。当我初次接触电脑的时候,我还是在黑底白字的DOS时代。我曾为Turbo  C里的IDE环境惊叹不已。那时的剪贴、粘贴的快捷键是Ctrl-Ins、Shift-Ins,删除一行是Ctrl-y,直到现在我还忍不住想用Ctrl-y来删除一行。其实统一软件快捷键的不是MS,而是WordPerfect,正是因为它的流行,使得之后的软件都纷纷效仿它,以增加亲和力。F1代表“帮助”就是它最先使用的。所以不要再抱怨Emacs的快捷键了。Emacs可以在没有图形显示的终端环境下出色的工作,和它在X下一模一样。UltraEdit可以吗?) 
              废话少说,言归正传。我们的目的是定制我们的工作环境,使之最适合我们的工作。因此,我们必须首先澄清一些概念。 
      缓冲区(Buffer) 
          缓冲区(Buffer)的概念听起来很玄,其实就是一块用来保存我们输入的东西的内存区域,你可以把它理解为文件。在Emacs里,一切都是在内存中进行,直到你按下C-x  C-s来保存,你的文件才会被改变。这是一个普遍的文本保存策略,几乎所有的文本编辑器都是这样工作的。 
      窗口(Frame) 
          窗口(Frame)不是Window,它是指你所编辑的文本被显示的区域。这一点类似于你在UltraEdit里打开的各个文件所在的小窗口。 
      模式(mode) 
          模式(mode)是Emacs里最重要的概念,Emacs的强大功能基本上都是由各种模式提供的。常用的有C/C++模式、shell模式、Perl模式、SGML/HTML模式等等。 
       
              基于上面的概念,让我们来逐步研究Emacs的IDE环境 
       
      10.1、文件,缓冲区和窗口 
              首先,我们可以在Emacs里同时编辑多个文件。你随时可以使用C-x  C-f来打开(或者创建)文件。但是默认情况是,编辑器自动进入到新的文件窗口中(所有的编辑器都这样)。如果我们希望同时看到两个文件(比如比对两个文件),我们就必须首先对窗口进行分割。使用C-x  2对窗口进行水平分割。分割完毕后你会失望的发现,两个窗口里的内容竟然完全一样(包括你对任一窗口的修改,都会同步显示在另一个窗口中)!是的,我们只是分割了窗口,但是并没有切换缓冲区,因此依旧是显示原来缓冲区的内容。使用C-x  o切换到你想去的窗口,然后在缓冲区列表(C-x  C-b)里选择目标文件。这样你就可以在同一屏终审视两个文件了。 
              你也可以用C-x  3垂直分割屏幕,分成左右两个区域。窗口理论上可以无限分割,只要你觉得分那么多的小窗口有意义(试试看,连Emacs都会觉得你这样做很愚蠢),因此你完全可以将屏幕分割成倒“品”字形,只需依次按下C-x  2、C-x  3即可。 
              窗口和缓冲区的概念是完全不同的,因此我们可以“关闭”窗口,而非“关闭”缓冲区,让它暂时从我们的视线里消失。这相当于图形环境下的“最小化窗口”。使用C-x  0关闭当前窗口,使用C-x  1关闭当前窗口以外的其他窗口。 
       
              下面的这个列表很直观的显示了对窗口和缓冲区的键盘操作: 
      -------------------------------------------------------------------------------------------------------- 
      窗口操作: 
       
      功能键                    功能 
      C-x  0                    删除当前窗口,对缓冲区无影响。注意这里是数字0。      (最小化当前窗口) 
      C-x  1                    删除当前以外的所有窗口,对缓冲区无影响。                    (最小化其他窗口) 
      C-x  2                    水平分割当前窗口。 
      C-x  3                    垂直分割当前窗口。 
      C-x  o                    切换窗口(当且仅当有一个以上的窗口存在)。注意这里是字母o。 
       
      缓冲区操作: 
       
      功能键                    功能 
      C-x  C-f                打开(创建)文件,创建一个新的缓冲区。 
      C-x  C-s                保存当前缓冲区到文件。 
      C-x  C-w                保存当前缓冲区到其他文件(文件另存为)。 
      C-x  k                    关闭当前缓冲区。 
      C-x  C-b                缓冲区列表。你可以用方向键来选择要切换的缓冲区。 
      C-x  C-c                关闭所有的缓冲区,退出Emacs。 








    10.2、模式 
              接下来我们看看Emacs里的模式(Mode)。 
              在Emacs里,无论何时编辑一个文件,都要使用一个特定的模式(Mode)。Emacs里的“模式”不同于vi里的“模式”。vi里分“命令”和“编辑”两种模式,而Emacs里只有一种模式,就是编辑模式,Emacs里的命令全靠功能键完成。但是我说的“模式”不是指这个模式,而是指Emacs里的各种辅助环境。当我们编辑普通文本时,用的是“文本模式(Txt  Mode)”,而当我们写程序时,比如前面的Bash脚本,用的则是“Shell(bash)模式”。 
              当我们启动某一文件时,Emacs会判断文件的类型,从而自动选择相应的模式。当然,我们也可以手动启动各种模式。先按M-x,然后输入模式的名称。比如启动“C模式”,就是M-x  c-mode。直接按下M-x,然后按两下Tab键,你将得到所有可执行的命令,这里面当然包括所有的模式。因此,你要想不起来某个命令的名称,就用这个方法。 
       
      10.2.1、C模式 
              在强大的C模式下,我们拥有“自动缩进”、“注释”、“预处理扩展”、“自动状态”等强大功能。 
              当我们在“C模式”下编辑代码的时候,可以用Tab键自动的将当前行的代码产生适当的缩进,使代码结构清晰、美观。我们也可以指定缩进的规则。Emacs支持的缩进规则有:bsd、cc-mode、ellemtel、gnu、java、k&r、linux、python、stroustrup、user、whitesmith,通过M-x  c-set-style命令指定。 
              源代码要有良好可读性,必须要有良好的注释。用M-;可以产生一条右缩进的注释。C模式下是“/*  comments  */”形式的注释,C++模式下是“//  comments”形式的注释。当我们高亮选定某段文本,然后按C-c  C-c,就可以把这段文字给注释掉。 
              Emacs可以使用C预处理其运行代码的一部分,以便让程序员检测宏、条件编译以及include语句的效果。比如想象下面的这种情况: 
              1、在顶层窗口输入看到的代码。 
              2、高亮显示一个区域。 
              3、按C-c  C-e调用宏扩展。也可以从菜单C中选择  Macro  Expand  Region。 
              Emacs将创间谍热窗口,显示宏扩展的结果。 
              Emacs中的C环境还有许多特性,可以帮助程序员加速开发过程。运行在自动状态下的时候,且程序员输入代码的时候,C环境会自动地插入新行、处理缩进并完成其他相关任务。在许多情况下,编程时都不用按EnteAr键,系统会自动处理。 
              按C-c  C-a或者运行M-x  c-toggle-auto-stat,就可以开启自动模式。在这种模式下敲击键盘时,程序员会注意到无论何时,只要输入分号,编辑器就会自动把光标定位到下一行,并自动缩进。最终代码看起来好像没有使用自动模式一样;它只是减少了程序员创建文件敲击键盘的次数。 
              如果想要关闭自动模式,只需要按C-c  C-a或者运行M-x  c-toggle-auto-state,系统将恢复一般状态。 
       
      10.2.2、编译程序 
              Emacs可以让程序员在Emacs环境里编译自己的软件。这样做的时候,编辑器把编译器的输出和程序代码连接起来。这意味着程序员只需要单击出错的命令(按个回车),就可以立刻定位那些警告和错误信息。 
              可以在Tools菜单里找到这些选项。在从菜单中选择Compile时,Emacs要求输入编译命令。如果有一个Make文件,可以接受默认设置。否则,程序员必须为正确编译程序而填写编译命令行。 
              如果在编译时遇到错误或警告,Emacs将在分开的窗口中显示它们。 
              此时用Enter单击错误信息,就可以直接跳到发生错误的源代码处。有时,在输出窗口重将有几百条警告信息;直接跳到出错的地方,可大量的节省时间。 
              正如你看到的,默认的编辑命令是对一个make的调用。Emacs可以完美使用make并处理大量文件,对Emacs是否能支持大的工程项目的担心,是完全没有必要的。 
       
      10.2.3、调试 
              许多集成的开发环境提供一个调试器。虽然多数只是一个有限的调试器,但是Emacs为gdb调试器提供了一个功能齐全的借口。 
              在Emacs中使用gdb的时候,程序员能获得gdb在其他任何方式运行时所具有的全部标准特性。但是还是包括了一些通过接口增强而获得的其他性能。 
              在Emacs中使用gdb调试程序,可以观察自己的代码是如何从头到尾运行的。这个选项比默认的gdb操作更容易使用,默认的操作只是显示的指令。 
              此外,由于可以直接在Emacs中重新编译调试器运行在缓冲器内的代码,在调试器内对代码进行改动、重新编译和运行是简单的方法。 
              为了在Emacs里调用调试器,在Tools菜单中选择gdb,会出现系统提示,要求输入可运行文件以便进行调试。当输入了名字时,gdb被调用。最初将看到一个和标准gdb一样的窗口。在程序的适当地方设置断点后运行程序,源代码窗口将会有=>标记指向断点位置的代码并高亮显示。gdb窗口将不再显示代码。 
              在gdb窗口中,可以使用所有的常用gdb命令。在Emacs中使用gdb,程序员必须要学习任[屏蔽]的命令。 
      10.2.3、使用标记 
              Emacs的另外一个强大的功能是使用标记(tag)的能力。根据标记,编辑器可以区分哪些文件属于同一个项目。更重要的是,标记还能准确指出每个文件都包含了什么。比如在C程序中,标记指出那个文件包含了特定的函数。当编译文件的时候,可以直接跳到任何函数所在——而不管文件的路径。此外,可以对一组文件而不仅仅对当前文件使用命令。比如,一个搜索命令可以对一组文件起作用。 
              为了提供这个功能,Emacs需要分析文件,并且保存将要被使用到的标记信息。一般而言,实现这种功能要使用一个叫TAGS的文件。在命令行中运行etags程序创建这个文件,并且给它需要索引的文件名字。例如: 
              $etags  *.c 
              etags程序分析源代码,并产生一个TAGS文件,便于以后在Emacs中使用。 
              现在,可以在Tools菜单中使用Tags选项,对文件进行操作。可以使用Find  Tag(M-.)来看看到底发生了些什么。比如,输入一个函数的名字,Emacs将直接跳到包含该函数的文件,如果需要则带开该文件,并且定位光标于该函数的第一行;如果该函数在一个以上的文件中出现,就可以使用M-,继续搜索其他的文件。 
      10.3、在Emacs里用Shell 
              Emacs独一无二的地方就在于它可以在内部运行shell。Emacs里的Shell与普通的Shell没有区别,我们编写的shell脚本可以直接运行测试,而不必退出Emacs。但是,在Emacs的shell环境下,不能运行某些需要对控制台进行控制的程序,比如mc。这是我们可以用term模式代替,只需运行M-x  term-mode命令。 
              我们已经在前面体验过Emacs里的shell了,我就不再重复了。 
      10.4、其他,但不是鸡肋 
              Emacs集成了万维网浏览器、邮件阅读器、ftp、telnet、新闻组阅读器、版本控制系统等等。实在是太多了,我在这里肯定无法一一谈到。学习Emacs的最好方法就是“看书+实践”,我就是这么学习Emacs的。多多摸索,你也可以成为Emacs高手。征服Emacs并不是“不可完成的使命”。 
      10.5、累了,玩玩游戏吧 
              F10->Tools->Games,尽情娱乐吧,我们的宗旨是——劳逸结合。


    无处安放的青春II -- 该把爱放哪儿才安全

    顶端 Posted: 2008-04-25 15:56 | [1 楼]
    独飞の孤心



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 孽缘!
    等级: 荣誉会员
    家族: 单身贵族
    发贴: 4484
    威望: 3
    浮云: 496
    在线等级:
    注册时间: 2005-10-12
    最后登陆: 2011-09-23

    5come5帮你背单词 [ vest /vest/ n. 背心;vt. 授予,给予(权力,财产等) ]


    ==========================以下是第二篇=====================


    无处安放的青春II -- 该把爱放哪儿才安全

    顶端 Posted: 2008-04-25 15:57 | [2 楼]
    独飞の孤心



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 孽缘!
    等级: 荣誉会员
    家族: 单身贵族
    发贴: 4484
    威望: 3
    浮云: 496
    在线等级:
    注册时间: 2005-10-12
    最后登陆: 2011-09-23

    5come5帮你背单词 [ beside /bi'said/ prep. 在…旁边,在…附近,与…相比 ]


    http://man.chinaunix.net/newsoft/Emac/book.html#AEN82

    ====================================

    Emacs 中文化指南
    Jerry 最后更新时间: 2004年3月21日
    本文件仅收集我个人在使用Emacs中的一些经验和技巧, 本文可以随意转载, 无需通知作者, 本文最新文档可以从http://zhdotemacs.sourceforge.net上获得, E-mail: unidevel@yahoo.com.cn. 不定期更新 如有错误, 敬请指出, E-mail: unidevel@yahoo.com.cn

    [ Split HTML / Single HTML ]

    --------------------------------------------------------------------------------

    Table of Contents
    1 最近更新
    1.1 2004年08月11日
    1.2 2004年05月01日
    1.3 2004年04月20日
    1.4 2004年03月21日
    1.5 2004年01月20日
    1.6 2003年12月19日
    1.7 2003年12月17日
    2 Emacs 安装
    2.1 下载Emacs源代码
    2.2 安装Emacs
    2.3 遇到问题怎么办
    2.4 Emacs 基本编辑命令(1)
    2.5 Emacs基本编辑指令(2)
    3 Emacs 中文设置
    3.1 系统对多语言的支持性
    3.1.1 Console环境
    3.1.2 Windows系统
    3.1.3 X Window系统
    3.2 中文设置
    3.2.1 通用配置
    3.2.2 Windows配置
    3.2.3 X Window设置
    3.3 Emacs输入法
    4 一些常用的Emacs功能
    4.1 auto-insert -- 自动插入功能
    4.2 QuickURL -- 快速插入地址
    4.3 time-stamp -- 记录修改时间
    4.4 我最最讨厌的
    5 Emacs 扩展包安装
    5.1 Tramp -- Transparent Remote Access, Multiple Protocol
    5.1.1 tramp简介
    5.1.2 Tramp原理
    5.1.3 tramp的安装及使用
    5.1.4 常见问题
    5.2 session
    5.2.1 session简介
    5.2.2 session的使用
    5.3 Emacs mew -- 强大的Emacs Email客户端
    5.3.1 Emacs Mew的安装
    5.3.2 Emacs mew配置
    5.3.3 常见问题
    5.3.4 一些mew的屏幕截图
    5.4 Color Theme -- 让你的Emacs更多彩
    5.4.1 color-theme的安装
    5.4.2 color-theme的使用
    6 一些小巧的Emacs lisp
    6.1 tab-display.el
    6.2 wb-line-number.el
    6.3 keisen-mode
    7 自己写的一些Emacs lisp
    8 Emacs中一些有趣的功能
    8.1 Emacs中的游戏
    9 迷你型的Emacs
    9.1 zile 中文设置
    10 Emacs网络资源汇总
    10.1 中文资源
    10.2 Lisp资源
    10.3 文档资源

    --------------------------------------------------------------------------------

    Chapter 1 最近更新
    Jerry
    1.1 2004年08月11日
    更新Section 10.2中的mule-gbk的链接.

    由于更换了操作系统,以前使用FreeBSD docproj编写的文档暂时无法更新


    --------------------------------------------------------------------------------

    1.2 2004年05月01日
    新增 Section 9.1zile中文设置.


    --------------------------------------------------------------------------------

    1.3 2004年04月20日
    新增 Section 5.3.3设置多个邮件.


    --------------------------------------------------------------------------------

    1.4 2004年03月21日
    新增 Chapter 7自己写的一些Emacs lisp.


    --------------------------------------------------------------------------------

    1.5 2004年01月20日
    新增 Section 5.3.3mew发送和接收邮件.


    --------------------------------------------------------------------------------

    1.6 2003年12月19日
    新增 Chapter 9迷你型的Emacs.

    修改 Section 4.4我最最讨厌的, 新增step 10如何忽略错误.


    --------------------------------------------------------------------------------

    1.7 2003年12月17日
    新增 Section 4.3 time-stamp -- 记录修改时间.

    修改 Section 3.2.2 Windows配置, 新增不使用intlfonts的配置.

    修改 Section 10.1 中文资源, 新增邮件列表.


    --------------------------------------------------------------------------------

    Chapter 2 Emacs 安装
    Jerry
    Emacs可以运行于*NIX及Windows平台, 我用它来搭建统一的开发环境

    不过首先最好认识一下Stallman.


    --------------------------------------------------------------------------------

    2.1 下载Emacs源代码
    Emacs最新版本的源代码可以从http://ftp.gnu.org/pub/emacs上获得, 或者通过cvs获得开发版及稳定版的源代码, 我一般选择稳定的版本, 毕竟很多扩展包都经过了测试, 使用起来稳定可靠(Windows下的应该除外, 我用过几个版本, 总是会出一些问题, Linux上的Emacs比较稳定, 通过FreeBSD ports安装的Emacs也比较稳定), 不过感觉Emacs 21.3对中 文支持并不如从CVS中编译的好, 因此本文就是使用CVS下载Emacs的源代 码在FreeBSD 5.1-Current下编译的.


    --------------------------------------------------------------------------------

    2.2 安装Emacs
    FreeBSD下推荐通过ports或者安装包直接安装, 也可以从cvs中下载最新代码编译, 编译时则可以使用./configure调整编译选项进行编译, 请不要使用--without-xim选项, 该选项使Emacs不使用XIM输入协议, 因此使用该选项则不能使用像chinput, xcin等使用XIM协议的输入法, 虽然Emacs子带输入系统, 但是中文的输入实在太差, 后面我会讲到如何扩展Emacs的输入法, 我在FreeBSD下编译Emacs(CVS)的命令如下,

    $script emacs_build.log
    $CPPFLAGS=-I/usr/local/include CXXFLAGS=-I/usr/local/include \
    CFLAGS=-I/usr/local/include LDFLAGS=-I/usr/local/lib \
    ./configure --prefix=/dtroot --with-xpm --with-jpeg \
    --with-tiff -with-gif --with-png --with-x --with-xim
    $make -j4 bootstrap
    $make install
    $exit
     
    或者使用--with-gtk, 来使用gtk的外观

    $script emacs_build.log
    $CPPFLAGS=-I/usr/local/include CXXFLAGS=-I/usr/local/include \
    CFLAGS=-I/usr/local/include LDFLAGS=-I/usr/local/lib \
    ./configure --prefix=/dtroot --with-xpm --with-jpeg \
    --with-tiff -with-gif --with-png --with-x --with-xim --with-gtk
    $make -j4 bootstrap
    $make install
    $exit
     
    假如你是用cvs获得的源代码, configure后应该使用 make bootstrap编译


    --------------------------------------------------------------------------------

    2.3 遇到问题怎么办
    以我的经验来看, 最好的办法就是先找找对应的FAQ, 然后找手册, 再去 对应的邮件列表上问一下, 最后就是自己调试程序.


    --------------------------------------------------------------------------------

    2.4 Emacs 基本编辑命令(1)
    Emacs的强大功能相信大家都已经听说过了, 熟悉vi或windows下IDE 工具开始使用时Emacs会觉得十分难受. 这一节讲一下基本的几个编译命 令, 首先说明一下以`C-'开头的是 `Ctrl'键加上后面的键一块按下, 例如 `C-x 0'就是Ctrl键和 x键一块按下, 然后再按下0, 以 `M-'开头的就是META键, 一般就是 Alt键.

    `C-x C-f 文件名' -- 打开文件

    `C-x C-s' -- 保存文件

    `C-x C-c' -- 退出Emacs

    `C-x u' -- 取消上一次操作

    有了这四个基本指令就可以进行通常的编辑保存功能了, 不过现在你 肯定感觉不到Emacs的强大功能. 甚至会觉得Emacs还不如Windows的 Notepad, 别急, 熟悉一下Emacs后我们再来感受Emacs的超强功能.


    --------------------------------------------------------------------------------

    2.5 Emacs基本编辑指令(2)
    我们继续讲解Emacs的基本指令, 这一部分讲解基本的光标指令, 你 可以用Emacs打开一个文件, 我们一起来"运动"

    `C-v' -- 向后翻一页

    `M-v' -- 向前翻一页

    `C-l' -- 将当前行居中

    `C-f' -- 向前移动一个字符

    `M-f' -- 向前移动一个单词

    `C-b' -- 向后移动一个字符

    `M-b' -- 向后移动一个单词

    `C-n' -- 向下移动一行

    `C-p' -- 向上移动一行

    `C-a' -- 移至当前行的第一个字符

    `M-a' -- 移至当前所在句子的第一个字符

    `C-e' -- 移至当前行的最后一个字符

    `C-p' -- 移至当前所在句子的最后一个字符

    `M-<' -- 移动到当前窗口的第一个字符

    `M->' -- 移动到当前窗口的最后一个字符

    注意: `M-<'输入时要同时键入`Alt', `Shift'和`,'

    这些命令前可以加入`C-u N'表示重复N次, 例如向下移动8行可以这 样按键`C-u 8 C-n'

    好了, 基本的移动指令就介绍完了, 可能这些键使用起来是不太顺手, 在本章最后, 我们将讲一下如何定制这些键, 使Emacs更加符合个人的使用 习惯.


    --------------------------------------------------------------------------------

    Chapter 3 Emacs 中文设置
    Jerry
    Emacs发展到今天, 功能已经十分完善和强大, Emacs有强大的多语言编辑功 能, 当然设置的得当才能发挥出Emacs的强大功能, 下面讲述一下在Windows 以及X Window上的多语言的设置问题


    --------------------------------------------------------------------------------

    3.1 系统对多语言的支持性
    3.1.1 Console环境
    这里的Console是像Windows下的cmd, command, Unix下的console, tty 的统称, Console环境下, 只要本身能正常显示中文就可以了, Emacs自 带输入法, 基本上不用怎么设置就可以使用


    --------------------------------------------------------------------------------

    3.1.2 Windows系统
    Windows本身对多语言支持的已经是十分完善了, 只是要切换缺省语言 比较麻烦, 设置完后总要重启(针对Windows 2000和Windows XP), Emacs对中文的支持也因版本的不同而不同, 通常的方法和在X Window 下类似, 需要设置对应的字体, 而Windows下最好使用bdf字体, 相关的 字体可以在XEmacs站点上下载到, 我用的是intlfonts-1.2


    --------------------------------------------------------------------------------

    3.1.3 X Window系统
    X Window下首先需要汉化X, 使X能正常使用中文, 其实和Windows差不 多, 也不过是设置字体, 因为X本身已经对多语言提供支持(建议使用 XFree86 V4.2及以上版本), X上最好是把Windows下的那些ttf和ttc的 字体拿来使用, 毕竟不是免费字体, 作工还是要好一些


    --------------------------------------------------------------------------------

    3.2 中文设置
    3.2.1 通用配置
    这一部分是所有系统都要设置的

    (set-language-environment 'Chinese-GB)
    (set-keyboard-coding-system 'euc-cn)
    (set-clipboard-coding-system 'euc-cn)
    (set-terminal-coding-system 'euc-cn)
    (set-buffer-file-coding-system 'euc-cn)
    (set-selection-coding-system 'euc-cn)
    (modify-coding-system-alist 'process "*" 'euc-cn)
    (setq default-process-coding-system
                '(euc-cn . euc-cn))
    (setq-default pathname-coding-system 'euc-cn)
     

    --------------------------------------------------------------------------------

    3.2.2 Windows配置
    这一部分设置Windows下的字体, 解压intlfonts-1.2, 设置变量 fonts-dir为所安装的字体目录

    (setq fonts-dir "<path to intlfonts>")
    (setq bdf-directory-list
          (list
          (expand-file-name "Asian" fonts-dir)
          (expand-file-name "Chinese" fonts-dir)
          (expand-file-name "Chinese.BIG" fonts-dir)
          (expand-file-name "Chinese.X" fonts-dir)
          (expand-file-name "Ethiopic" fonts-dir)
          (expand-file-name "European" fonts-dir)
          (expand-file-name "European.BIG" fonts-dir)
          (expand-file-name "Japanese" fonts-dir)
          (expand-file-name "Japanese.BIG" fonts-dir)
          (expand-file-name "Japanese.X" fonts-dir)
          (expand-file-name "Korean.X" fonts-dir)
          (expand-file-name "Misc" fonts-dir)
          (expand-file-name "TrueType" fonts-dir)
          (expand-file-name "Type1" fonts-dir)))
    (setq w32-bdf-filename-alist
          (w32-find-bdf-fonts bdf-directory-list))
    (create-fontset-from-fontset-spec
    "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
    chinese-gb2312:-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,
    japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
    katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
    latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
    japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
    thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
    lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
    tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
    ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
    tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
    (setq font-encoding-alist
          (append '(("MuleTibetan-0" (tibetan . 0))
            ("GB2312"        (chinese-gb2312 . 0))
            ("JISX0208"      (japanese-jisx0208 . 0))
            ("JISX0212"      (japanese-jisx0212 . 0))
            ("VISCII"        (vietnamese-viscii-lower . 0))
            ("KSC5601"      (korean-ksc5601 . 0))
            ("MuleArabic-0"  (arabic-digit . 0))
            ("MuleArabic-1"  (arabic-1-column . 0))
            ("MuleArabic-2"  (arabic-2-column . 0))) font-encoding-alist))
    (set-default-font "fontset-bdf")
       
    注意: 上面的中文字体的大小只能为16,24,40,48, 因为intlfonts 中的BDF字体只有这几种大小的中文字体能匹配上面的chinese-gb2312的配置, 此外在Emacs 21.3中还可以这样设置

    (set-language-environment 'Chinese-GB)
    (set-default-font "-outline-新宋体-normal-r-normal-normal-12-*-96-96-c-*-gb2312")
       
    假如你不知道系统的字体就M-x set-default-font, 然后使用TAB 键来看一下补全的字体信息


    --------------------------------------------------------------------------------

    3.2.3 X Window设置
    X的中文设置我就不说了, 自己搞定吧, 我拷贝了Windows的simsun.ttc 和mingliu.ttc来使用, 看简繁体中文不成问题了, 设置好X的字体后, 通过配置X Resources, 来设置emacs的字体, 通常就是配置$HOME/.Xdefaults, 1024x768的分辨率下可以设置字体为8x16, 800x600可以设置7x14的字体就可以达到字体等宽的效果

    emacs.font:  8x16
    emacs.paneFont:  8x16
    Emacs.pane.menubar.font: 8x16
    Emacs.foreground: white
    Emacs.background: black
    emacs.geometry:  100x32
       

    --------------------------------------------------------------------------------

    3.3 Emacs输入法
    Emacs自带多种输入法, 当然不止一种语言了, 但它自带的中文输入 法实在是太......, 想必不会有谁去用它的中文输入法来输入汉字吧, 不过 还是有几种比较好的输入法像自然码等, 我从fcitx和xcin的源码包中转换出 几种输入法, 有五笔, 注音, 双拼等, 下面说一下使用方法, 可以从 http://sourceforge.net/projects/zhdotemacs/ 下载到emacsim.tar.bz2

    安装及使用方法, 参见安装包中的INSTALL文件

    安装输入法

    $tar -xvjf emacsim.tar.bz2
    $cd emacsim
    $cp -R gb big5 ${emacs-install-dir}/share/emacs/${emacs-version}/leim
     
    配置输入法, 拿gb/pingyin.el为例, 把下面的代码加入到文件 ${emacs-install-dir}/share/emacs/${emacs-version}/leim/leim-list.el中

    (register-input-method
    "chinese-pinyin-gb" "Chinese-CNS" 'quail-use-package
    "拼音" "汉字输入∷【拼音】∷"
    "gb/pinyin")
     
    输入法的使用, 按照上面的例子, 使用 `M-x set-input-method RET chinese-pinyin-gb RET' 就可以使用了


    --------------------------------------------------------------------------------

    Chapter 4 一些常用的Emacs功能
    Jerry
    这一部分对Emacs安装后自带的一些实用的扩展功能进行讲解


    --------------------------------------------------------------------------------

    4.1 auto-insert -- 自动插入功能
    auto-insert是一个十分有用的功能, 比如我们在写一个C语言的头文 件时, 一般会加入下面的代码

    #ifndef XXX_H
    #define XXX_H

    #endif /* XXX_H */
     
    auto-insert就方便了我们, 不用每次都要手工输入这些代码, 新建 一个头文件时, 它会询问是否要加入这些自动生成的代码, 下面来看一下 auto-insert如何使用

    `M-x auto-insert'会根据当前的mode在新建的文 件插入一些预定的文本, 如果想在打开文件时自动插入的话, 将下面的代 码加入~/.emacs中

    (add-hook 'find-file-hooks 'auto-insert)
     
    修改`auto-insert-alist'可以定制插入的模板, 可以使用`defint-auto-insert'来加入或者修改 `auto-insert-alist'

    变量`auto-insert'用来定制自动插入时的动作类 型

    `nil' 什么都不作, 即不执行插入动作

    `t'根据auto-insert-alist和当前的mode执 行对应的插入动作

    其他值 同`t', 但是自动插入文本后, 不置 文档修改标志

    变量`auto-insert-query'定义自动插入文本前是 否询问, `Non-nil'表示自动插入文本前要询问.

    变量`auto-insert-prompt'设定询问的语句, 如 果有%s, 则将被替换为执行插入的条件

    变量`auto-insert-directory'设定模板的路径, 注意必须以`/'结尾

    下面是一个比价完整的配置

    (setq auto-insert t)
    (setq auto-insert-query t)
    (add-hook 'find-file-hooks 'auto-insert)
    (setq auto-insert-directory "~/insert/")
    (define-auto-insert '("^build\\.xml\\'" . "Ant编译脚本") "build.xml")
     
    常见问题, auto-insert-directory的值必须以`/'结尾, 否则就不能 正常工作


    --------------------------------------------------------------------------------

    4.2 QuickURL -- 快速插入地址
    QuickURL允许我们快速的插入一个单词对应的地址, 也允许加入新的 地址, 这有点像浏览器的收藏夹, 对于经常写这些文档的我来说十分方便实 用, 同时也可以收藏一些好文章的地址.

    QuickURL是Emacs自带的, 所以不需要特殊的配置就可以直接使用, 常用功能如下:

    `quickurl-ask'在当前位置插入所选的URL

    `quickurl-add'加入新的URL

    `quickurl-list'列出所有的URL

    `quickurl-edit'编辑所有的URL

    QuickURL还有一些其他的指令, 自己看看帮助吧, 希望它能对你有用


    --------------------------------------------------------------------------------

    4.3 time-stamp -- 记录修改时间
    打开time-stamp可以记录最后运行time-stamp的时间, 所以一般将 time-stamp 加入 write-file-hooks 中, 记录文件的最后修改时间, ~/.emacs 配置如下:

    (add-hook 'write-file-hooks 'time-stamp)
    (setq time-stamp-format "%:u %02m/%02d/%04y %02H:%02M:%02S")
     
    上面设置写入文件时执行time-stamp, 并设置时间格式为"%:u %02m/%02d/%04y %02H:%02M:%02S", 缺省的情况下, 在所编辑文件的前八行内插入如下标记

    Time-stamp: <>
     
    或者

    Time-stamp: " "
     
    Emacs在保存时就会运行write-file-hooks中的time-stamp, 从而加 入修改时间, 结果类似下面所示

    Time-stamp: <jerry 12/17/2003 12:00:54 (unidevel.com)>
     
    或者

    Time-stamp: "jerry 12/17/2003 12:00:54 (unidevel.com)"
     
    要使用中文表示, 可以这样设置

    (setq time-stamp-start "最后更新时间:[    ]+\\\\?")
    (setq time-stamp-end: "\n")
    (setq time-stamp-format: "%:y年%:m月%:d日")
     
    上面设置了如果碰到"最后更新时间:"的字样, time-stamp就将其后 面的字符替换为当前时间的"XXXX年XX月XX日", 注意, time-stamp-end的结束符 为换行符, 所以"最后更新时间:"行后所有字符都将无条件被替换为"XXXX年XX月XX日" 格式的时间, 本文首页上的更新时间就是这样做出来的


    --------------------------------------------------------------------------------

    4.4 我最最讨厌的
    不要打入 TAB 时总是听到 PC 喇叭嘀嘀嘀的叫

    (setq visible-bell t)
    不要总是没完没了的问yes or no, 为什么不能用 y/n

    (fset 'yes-or-no-p 'y-or-n-p)
    为什么不能显示个时间什么的

    (display-time)
    为什么不显示当前所在的行号和列号

    (column-number-mode t)
    为什么不能像Windows下编辑器那样, 高亮显示要拷贝的区域

    (transient-mark-mode t)
    我要显示匹配的括号

    (show-paren-mode t)
    为什么使用语法显示的大文件在移动时如此之慢

    (setq lazy-lock-defer-on-scrolling t)
    (setq font-lock-support-mode 'lazy-lock-mode)
    (setq font-lock-maximum-decoration t)
     
    不要那个如此大的工具条

    (tool-bar-mode -1)
     
    在mozilla, openoffice等拷贝的中文文字无[屏蔽]确粘贴在Emacs中(Emacs 21.3 发布版有此问题, 至少在我的FreeBSD下是这样的)

    (set-clipboard-coding-system 'ctext)
     
    启动Emacs报错, ~/.emacs中有问题, 如何忽略错误

    (condition-case err
        (progn
        (require 'xxx) )
      (error
        (message "Can't load xxx-mode %s" (cdr err))))
     
    如上所示, 可以截获progn内部出错, 在mini-buffer下打出错误信息

    不要生成临时文件

    (setq-default make-backup-files nil)
     

    --------------------------------------------------------------------------------

    Chapter 5 Emacs 扩展包安装
    Jerry
    Emacs的扩展包可谓无所不有, 我只把关于开发的一些常用工具的安装 和配置及问题写一下


    --------------------------------------------------------------------------------

    5.1 Tramp -- Transparent Remote Access, Multiple Protocol
    5.1.1 tramp简介
    tramp提供给我们的是可以使用Emacs对本地/远程的文件进行编辑, 保存, 版本管理等, tramp的功能十分强大, 它可以使用多种协议(telnet, ftp, ssh等)进行文件的获取和保存, 也可以使用这些协议的组合来编辑和保存文件, 对本地文件的一个比较方便的操作是su, 即使用其他用户编辑只有这些用户才有权限进行编辑的文件. 例如以普通用户jerry运行Emacs 对只有root可以编辑的/etc/inetd.conf进行编辑和保存, 免去了再开一个shell以root登陆编辑的步骤


    --------------------------------------------------------------------------------

    5.1.2 Tramp原理
    Tramp的原理是使用标准的协议ftp, rsync, smb等直接获取和保存文件, 使用ssh, telnet, rsh等加上uuencode, uudecode等一些编码解码程序对文件进行 获取和保存


    --------------------------------------------------------------------------------

    5.1.3 tramp的安装及使用
    我使用的是tramp-2.0.33, 它加入了对smb支持(暂时还不是很完善, 如编辑一些中文名称的文件), 及对ftp的改进. 安装过程如下:

    下载 tramp-2.0.33.tar.gz

    假设安装到/tmp/tramp目录下, 解包tramp到/tmp/tramp下

    $tar -xvzf tramp-2.0.33.tar.gz
    $mv tramp-2.0.33 /tmp/tramp
       
    编译tramp

    $./configure --with-emacs
    $gmake
       
    安装tramp, 在~/.emacs中加入下面的代码

    (add-to-list 'load-path "/tmp/tramp/lisp")
    (setq tramp-default-method "scp")
    (setq tramp-auto-save-directory "/tmp")
    (setq auto-save-file-name-transforms
          '(("\\`/[^/]*:\\(.+/\\)*\\(.*\\)" "/tmp/\\2")))
    (setq tramp-chunksize 328)
    (require 'ange-ftp)
    (require 'tramp)
       
    重新启动Emacs或使用C-x C-e顺序执行上述代码就可以了


    --------------------------------------------------------------------------------

    5.1.4 常见问题
    tramp在一些版本的Emacs上会出现读出正常, 保存就无响应的现象, 设置tramp-chunksize为小于500的整数就可以了, 因为一些版本的Emacs中 process-send-string按照文档记载最长只能为500.

    此外tramp和ange-ftp有些冲突, 因为ange-ftp使用autoload装入, ange-ftp会设置 file-name-handler-alist变量, 从而将tramp设置的值覆盖掉, 因此使用 (require 'ange-ftp)首先装入ange-ftp, 然后使用(require 'tramp)装入tramp, 就不会出现这种问题.

    上述配置在windows平台上不能使Emacs正常使用tramp. Windows上推荐 使用tramp+putty, 相关配置可以使用Google查到.


    --------------------------------------------------------------------------------

    5.2 session
    5.2.1 session简介
    session扩展包可以使Emacs保存每次编辑的一些历史记录, 这样, 在下次打开Emacs时就可以使用上下键在以前输入的信息中选取, 十分方便实用.


    --------------------------------------------------------------------------------

    5.2.2 session的使用
    session的使用十分简单, 只需要在~/.emacs中加入如下几句就可 以了:

    (add-to-list 'load-path "<path to session>")
    (require 'session)
    (add-hook 'after-init-hook 'session-initialize)
       

    --------------------------------------------------------------------------------

    5.3 Emacs mew -- 强大的Emacs Email客户端
    Emacs mew是一个由日本人编写的Emacs邮件客户端, 对中文支持非常 之好也是我选择它的原因. 废话少说, 开始----


    --------------------------------------------------------------------------------

    5.3.1 Emacs Mew的安装
    Emacs mew的最新版本和源代码可以从 http://www.mew.org上下 载, 下载后解压, 使用make进行编译安装, 路径可以修改一下Makefile 中的prefix, elispdir和etcdir, 注意${prefix}/bin必须在PATH变量 中, 没有的话作个符号链接也可以, 对于NTEmacs的用户, 要把下载mew 安装包中的几个exe文件拷贝到emacs安装目录的bin下.


    --------------------------------------------------------------------------------

    5.3.2 Emacs mew配置
    把下面的代码加入~/.emacs中, 把用户名, 主机名换成对应的就可 以了

    (autoload 'mew "mew" nil t)
    (autoload 'mew-send "mew" nil t)
    (if (boundp 'read-mail-command)
        (setq read-mail-command 'mew))
    (autoload 'mew-user-agent-compose "mew" nil t)
    (if (boundp 'mail-user-agent)
        (setq mail-user-agent 'mew-user-agent))
    (if (fboundp 'define-mail-user-agent)
        (define-mail-user-agent
          'mew-user-agent
          'mew-user-agent-compose
          'mew-draft-send-message
          'mew-draft-kill
          'mew-send-hook))
    (setq mew-pop-size 0)
    (setq mew-smtp-auth-list nil)
    (setq toolbar-mail-reader 'Mew)
    (set-default 'mew-decode-quoted 't) 
    (setq mew-prog-pgp "gpg")
    (setq mew-name "显示的用户名")
    (setq mew-user "用户名")
    (setq mew-smtp-user "用户名")
    (setq mew-mail-domain "主机的域名")
    (setq mew-smtp-auth-list nil)
    (setq mew-smtp-server "SMTP主机")
    (setq mew-pop-server "POP主机")
    (setq mew-pop-user "用户名")
    (setq mew-pop-auth 'pass) ;;认证方式
    (setq mew-use-cached-passwd t)
    (setq mew-nntp-server "NNTP服务器")
    (setq mew-icon-directory (expand-file-name "mew/etc" dtsite-dir))
    (when (boundp 'utf-translate-cjk)
          (setq utf-translate-cjk t)
          (custom-set-variables
            '(utf-translate-cjk t)))
    (if (fboundp 'utf-translate-cjk-mode)
        (utf-translate-cjk-mode 1))
    (require 'flyspell) ;;非常好用的英文的拼写检查
       

    --------------------------------------------------------------------------------

    5.3.3 常见问题
    无法从网上下载所有邮件,总是报告类似"no new messages (3 messages left)"的消息

    删除Mail/.mew-uidl文件使Mew将邮件认为新邮件,设置(setq mew-pop-size 0) 使mew下载所有邮件,不论大小, 注意首先要使 用'Q'退出new ( 'Q' is 'shift' + 'q', not just 'q'), 保证 mew重新加载~/Mail/.mew-uidl

    如何在mew将邮件地址加入地址簿?

    C-cC-a加入地址簿, C-uC-cC-a加入地址和用户信息, 在发送邮件时可以使用TAB补全, 使用M-TAB将地址转换为User<address>的样子

    无法发送和接收邮件

    在mew的分发包中一般包含mewls, mewl, mewencode, mewdecode, incm等可执行文件, 检查它们所在路径是否包含在环境变量PATH中, 或者拷贝这些文件到emacs安装目录的bin目录下

    设置多个邮件

    mew提供多邮件设置, 这是通过设置mew-config-alist变量完成的, 例如我的邮箱设置 (可以设置在~/.emacs或者~/.mew.el中)

    (setq mew-config-alist
          '(("yahoo"
        ("name"        .  "Jerry")
        ("user"        .  "myname")
        ("smtp-server"  .  "127.0.0.1")
        ("smtp-port"    .  "5059")
        ("pop-server"  .  "127.0.0.1")
        ("pop-port"    .  "5058")
        ("smtp-user"    .  "myname")
        ("pop-user"    .  "myname")
        ("mail-domain"  .  "nonexist.com")
        ("mailbox-type" .  pop)
        ("pop-auth"    .  pass)
        ("smtp-auth-list" . ("PLAIN" "LOGIN" "CRAM-MD5"))
        )
        ("default"
        ("name"        .  "Jerry")
        ("user"        .  "sample")
        ("smtp-server"  .  "127.0.0.1")
        ("smtp-port"    .  "25")
        ("pop-server"  .  "127.0.0.1")
        ("pop-port"    .  "110")
        ("smtp-user"    .  "sample")
        ("pop-user"    .  "sample")
        ("mail-domain"  .  "sample.net")
        ("mailbox-type" .  pop)
        ("pop-auth"    .  pass)
        ("smtp-auth-list" . ("PLAIN" "LOGIN" "CRAM-MD5"))
        )))
       
    设置好后, 可以通过在summary列表下输入`C'切换设置, 不过需要注意 "mailbox-type"和"pop-auth"设置的值是没有引号的


    --------------------------------------------------------------------------------

    5.3.4 一些mew的屏幕截图
    mew屏幕截图1



    mew屏幕截图2




    --------------------------------------------------------------------------------

    5.4 Color Theme -- 让你的Emacs更多彩
    这个扩展包与开发工具没有多大关系, 不过还是有一点点的, 至少可 以帮助htmlize生成的html有不同的背景, 它主要是为Emacs配置不同的色 彩搭配, 使之像Windows那样据有不同的色彩主题, 例如某些变变总是把 各种IDE的编辑器设置的像是控制台下的VI一样黑底白字.


    --------------------------------------------------------------------------------

    5.4.1 color-theme的安装
    想不起来在哪里下载的了, 用Google搜索一下吧, 安装起来比较简单, 就是将安装目录加入load-path, 调入color-theme, 需要的话再选择一个缺 省的theme就可以了, 例如将color-theme.el放在/tmp下, 则配置如下:

    (add-to-list 'load-path "/tmp")
    (require 'color-theme)
    (color-theme-dark-blue)
       

    --------------------------------------------------------------------------------

    5.4.2 color-theme的使用
    安装完后, Tools菜单下会有一个Color Theme的菜单项, 可以用这 个定制color-theme, color-theme自带有不少的颜色主题


    --------------------------------------------------------------------------------

    Chapter 6 一些小巧的Emacs lisp
    Jerry
    有很多的Emacs lisp, 非常小巧而实用, 下面就介绍一些我常用的


    --------------------------------------------------------------------------------

    6.1 tab-display.el
    tab-display.el是用来以'<'字符标识出文件中的那些tab字符, 对于编辑某些文件来说非常有用, 它清楚地标明那些字符是tab的字符

    点击这里下载tab-display.el

    使用十分简单, 只需要在~/.emacs中加入(require 'tab-display)就可以了, 当然首先你要作的是把tab-display.el所在的路径加入load-path中

    tab-display屏幕截图




    --------------------------------------------------------------------------------

    6.2 wb-line-number.el
    wb-line-number.el可以在窗口左侧分割出一个显示行号的小窗口, 比那个mode-line上的行号看的更清楚一些

    点击这里下载wb-line-number.el

    使用时在~/.emacs中加入下面的语句(不要总是要我提醒你注意load-path设置哦)

    (set-scroll-bar-mode nil)  ; no scroll bar, even in x-window system
    (require 'wb-line-number)
     
    在需要显示行号的buffer打入M-x wb-line-number-toggle就可以了, 或者像我这样在~/.emacs中再加入一句(wb-line-number-enable)缺省显示行号

    wb-line-number屏幕截图




    --------------------------------------------------------------------------------

    6.3 keisen-mode
    keisen-mode是一个用来绘制表格的好工具, 尤其是绘制中文表格, 比起那个table.el来说好多了, kersen-mode是小日本写的, 点击这里下载 keisen-mule.lzh, 文件使用lha压缩, 使用时在~/.emacs中加入下面的语句

    (if window-system
        (autoload 'keisen-mode "keisen-mouse" "MULE table" t)
      (autoload 'keisen-mode "keisen-mule" "MULE table" t))
     
    操作起来只要使用Emacs中的移动键或者鼠标移动, 就可以绘制出各种表格了, 它会自动计算各个连接点, 简单方便

    keisen-mode屏幕截图




    --------------------------------------------------------------------------------

    Chapter 7 自己写的一些Emacs lisp
    Jerry
    Emacs MPG123歌词同步显示 -- lrc.el, 点击下载, 可以显示大部分lrc格式的歌词, 还有一些BUG, 导致某些的歌词无法显示, 正在修改中

    安装说明: 替换掉mpg123.el, 删去原来的mpg123.el,mpg123.elc, 在~/.emacs中加入下面的代码就可以了

    (setq lrc-lyric-dir "lrc文件的路径") to ~/.emacs
    (require 'mpg123)
       
    歌词显示在minibuffer中, 点击看大图



    以前的一些这里下载


    --------------------------------------------------------------------------------

    Chapter 8 Emacs中一些有趣的功能
    Jerry

    --------------------------------------------------------------------------------

    8.1 Emacs中的游戏
    Emacs自带了一些小游戏, 介绍几个

    M-x tetris

    俄罗斯方块



    M-x gomoku

    五子棋游戏



    M-x mpuz

    填数字游戏



    M-x snake

    贪吃蛇游戏



    M-x zone

    一个Emacs的屏保, 因为抓不出动的效果, 所以还是自己体验吧, 我第一次用它时把同事吓了一跳, 被误认作病毒

    M-x dunnet

    一个Mud游戏, 比较难玩, 推荐英文比较好的一定玩一下

    M-x nethack

    这个可不是Emacs自带的, 给那些nethack的faners, 需要下载nethack.el, 自己搜一下吧, 不过记得要重新编译nethack来支持Emacs

    剩下的那些不是我不会玩就是不好玩, 故不浪费时间介绍了, 自己体会吧


    --------------------------------------------------------------------------------

    Chapter 9 迷你型的Emacs
    Jerry
    网上有一些类似Emacs的编辑程序, 十分小巧, 比较著名的有下面几个

    em, 下载地址http://www3.famille.ne.jp/~ncc1701/em/

    zile 下载地址http://sourceforge.net/projects/zile/

    qemacs 下载地址http://fabrice.bellard.free.fr/qemacs/

    当你的机器无法忍受庞大的Emacs时, 不妨试试这些小巧的编辑器, 我在一台PII266/64M RAM 的笔记本上就使用zile来进行开发


    --------------------------------------------------------------------------------

    9.1 zile 中文设置
    zile安装完毕后需要修改缺省的配置来显示中文, 一般就是在$HOME/.zilerc中加入或者修改 displayable-characters, 修改成下面的样子

          displayable-characters = "0x20-0xff"
     

    --------------------------------------------------------------------------------

    Chapter 10 Emacs网络资源汇总
    Jerry

    --------------------------------------------------------------------------------

    10.1 中文资源
    1. 我在yahoo groups上申请了邮件列表, 希望大家可以参与讨论

    参与讨论:zhdotemacs@yahoogroups.com [1]

    订阅:zhdotemacs-subscribe@yahoogroups.com [2]

    退订:zhdotemacs-unsubscribe@yahoogroups.com [3]

    此外, 可以通过http://groups.yahoo.com/group/zhdotemacs/来查看以往信件, 不过必须注册一个yahoo帐号.


    --------------------------------------------------------------------------------

    10.2 Lisp资源
    Emacs Lisp List--- Emacs Lisp大全

    Mule-GBK--- Emacs的GBK编码


    --------------------------------------------------------------------------------

    10.3 文档资源
    Emacs 快速指南(官方) --- 官方的快速指南

    Emacs wiki中文版

    王春宇的Emacs中文资料 --- emacs和gnus的配置资料和一些非常有用的参考资料

    王垠的Emacs资料 --- 一些Emacs的配置和使用技巧

    Emacs/Cygwin配置资料 --- NTEmacs与Cygwin环境的整合, 推荐NTEmacs的用户看一下

    Emacs wiki -- 大量的Emacs资源

    Emacs dotfiles -- 大量的.emacs的配置样本

    Notes
    [1] 首先需要订阅, 订阅后可以向zhdotemacs@yahoogroups.com发送邮件参与讨论

    [2] 订阅时向zhdotemacs-subscribe@yahoogroups.com发送一封邮件, 主题上写"subscribe"就可以了, 注意不要加上引号, 收到确认信后, 按照内容中所说的回复或点击对应链接就可以了

    [3] 退订时向zhdotemacs-unsubscribe@yahoogroups.com发送一封邮件, 主题上写"unsubscribe"就可以了, 注意不要加上引号, 收到确认信后, 按照内容中所说的回复或点击对应链接就可以了


    无处安放的青春II -- 该把爱放哪儿才安全

    顶端 Posted: 2008-04-25 15:58 | [3 楼]
    小虎





    性别: 帅哥 状态: 该用户目前不在线
    等级: 初出茅庐
    发贴: 39
    威望: 0
    浮云: 1106
    在线等级:
    注册时间: 2008-04-24
    最后登陆: 2008-06-03

    5come5帮你背单词 [ clerk /kla:k, klə:k/ n. 职员,店员,办事员 ]


    貌似这个东西有些人当作信仰来崇拜的哦。
    顶端 Posted: 2008-04-25 16:00 | [4 楼]
    xiepu518



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 无兄弟 不DotA
    等级: 荣誉会员
    家族: 唯war独尊
    发贴: 8191
    威望: 3
    浮云: 430
    在线等级:
    注册时间: 2005-10-09
    最后登陆: 2016-08-03

    5come5帮你背单词 [ essential /i'senəl/ a. 根本的,本质的,最重要的,必要的,必不可少的;n. (pl.)本质,要点 ]


    很好 但是用不来
    顶端 Posted: 2008-04-25 16:02 | [5 楼]
    ufly



    性别: 帅哥 状态: 该用户目前不在线
    等级: 希望之光
    发贴: 1930
    威望: 0
    浮云: 1366
    在线等级:
    注册时间: 2006-06-19
    最后登陆: 2010-10-14

    5come5帮你背单词 [ here /hiə/ ad. 在这里,到这里,向这里,这时,在这一点上 ]


    这个东西用了很久,确实有很多优点,但是本身太臃肿了,启动都要等上一会,而且现在编程大多用eclipse,还是决定换成vim了
    顶端 Posted: 2008-04-25 22:16 | [6 楼]
    独飞の孤心



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 孽缘!
    等级: 荣誉会员
    家族: 单身贵族
    发贴: 4484
    威望: 3
    浮云: 496
    在线等级:
    注册时间: 2005-10-12
    最后登陆: 2011-09-23

    5come5帮你背单词 [ shortly /'o:tli/ ad. 立即,不久,简洁地 ]


    Quote:
    引用第6楼ufly于2008-04-25 22:16发表的  :
    这个东西用了很久,确实有很多优点,但是本身太臃肿了,启动都要等上一会,而且现在编程大多用eclipse,还是决定换成vim了


    那可能是因为你配置太多东西来。。。当操作系统来用吧。。。


    无处安放的青春II -- 该把爱放哪儿才安全

    顶端 Posted: 2008-04-26 09:34 | [7 楼]
    我来我网·5come5 Forum » Linux专区

    Total 0.013395(s) query 5, Time now is:12-22 20:20, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号