Chapter 5 Emacs 扩展包安装

Table of Contents
5.1 Tramp -- Transparent Remote Access, Multiple Protocol
5.2 session
5.3 Emacs mew -- 强大的Emacs Email客户端
5.4 Color Theme -- 让你的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的改进. 安装过程如下:

  1. 下载 tramp-2.0.33.tar.gz

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

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

    $./configure --with-emacs
    $gmake
         
    
  4. 安装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)
         
    
  5. 重新启动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查到.