配置 GNU Emacs
(last-edit-by: lungangfang 02-16-2007 14:54>)
要充分发挥 Emacs 的威力,对其作一番配置是必不可少的。下面是我在 Windows 2000, Windows XP 及 Unbuntu 6.06 下采用自己的(同一个) .emacs 配置 Emacs22 或Emacs23 总结出来的步骤。
0,准备
Emacs 并不是什么功能都自己实现,很多时候它其实是转而调用 Unix 下的工具的。 或者说Emacs 的很多功能其实只是为 Unix 的常用工具提供一个更加方便的界面而 已,例如 GCC、GDB、diff、CVS、SSH 等。所以要在 Emacs 中使用这些功能,必须 系统上要装有相应的软件。
这在 Unix 下一般不成问题,但在 Windows 下就不一样了。为充分发挥 Emacs 的 功能在Windows 下我会装上 Cygwin。这样就拥有了大部份 Unix 下的常用工具的 Windows 版。
用惯了 UNIX 的 CLI(Command Line Interface),我认为即使不用 Emacs 也值得装 个cygwin,因为很多时候感觉用 CLI 反而比用 GUI 更方便。
1,复制 Emacs 相关的文件
我习惯把emacs相关文件分为三类:emacs本身,elisp脚本(跨平台的emacs插件), emacs用到的平台相关的二进制可执行程序。把它们分别复制到三个文件夹下,例如 c:\emacs、c:\emacs-lisp、c:\emacs-util-w32。
2,设置环境变量 (仅 Windows 平台适用)
HOME
Windows下没有home目录的概念,而emacs又需要从home目录读取各种各样的配置信
息,所以需要配置环境变量HOME。我一般把HOME指向C:\Documents and
Settings\your_account。
- 注意
-
- HOME应当作为私有环境变量。
- 设置 HOME 同时也会影响 cygwin。
PATH
装好 Cygwin 等软件后还得让 Emacs 找的到它们。设上环境变量 PATH 把运行 Emacs 所需的所有可执行程序的路径加入到环境变量PATH中。它们包括(假定 cygwin 安装在C:\cygwin ):
C:\emacs\bin
C:\emacs-util-w32
C:\cygwin\bin
C:\cygwin\usr\local\bin
- 注意
- 这些路径最好放在 Windows 的系统路径前,因为 Windows 有些和 Cygwin 重名的程序。
3, 安装插件
大部份 Emacs 插件无需安装,只要在配置文件中指定插件所在位置即可。但是也有 例外, 例如我用到的 CEDET 就需要安装。如果跳过这一步,必须把配置文件中的相 应配置注释掉。
安装 CEDET
进入 cedet 目录运行 make 命令应该就可以了。如有错误,参考该目录下的 INSTALL 文件。
安装 ispell
Emacs 的拼写检查是调用 ispell 来实现的。Linux 下一般默认都有这个工具, windows 下则需要自行安装。经过千辛万苦我终于找到了 cygwin 版的 ispell-3.2.06-cygwin-1.3-bin.tar.gz 。安装很简单:在 cygwin 的命令行下把 它复制到根目录后解压就可以了。要在 text-mode 下自动打开即时拼写检查 (spell checking on the fly-spell),取消配置文件中下列语句的注释:
(add-hook 'text-mode-hook 'flyspell-mode)
安装 BBDB
进入 bbdb 目录运行 make。
安装 eim (中文输入法)
一般不需要安装这个。我是因为在 Ubuntu 的 Gnome 下 Emacs 无法使用 SCIM 才 装的。有时候系统不提供的中文输入法或中文输入法与 Emacs 有冲突(例如gnome ),而 Emacs 自带的输入法又不太好用。不妨试试 eim。把 emacs-lisp/eim/py.txt 中的路径改成实际的路径就行了。
4,修改配置文件(_emacs)
- 注意
- 如果跳过了“安装插件”导致配置文件和实际配置不一致,启动 Emacs 可 能会报错。改用命令行命令 "emacs -q &" 启动 Emacs 编辑配置文件。
把配置文件 .emacs (Windows 下为 _emacs)复制到 HOME 目录下。
修改路径
我安装了大量插件,需要在 _emacs 中指定各种插件的路径。为了简化这个操作, 我把所有插件( elisp 脚本)都如前所述放在 c:\emacs-lisp 下并且在_emacs 中 使用相对路径配置各种插件。每次安装 Emacs 时只需替换文件开始部份的下列语句 的路径即可。
(setq site-lisp-path
(file-name-as-directory "C:/emacs-lisp"))
- 注意
- 即使是在 windows 下,路径的分隔符也是 UNIX 风格的'/'。
修改个人信息
一些常用的个人相关的配置也放在配置文件的开始部份,需根据个人情况添加、修改。
微调配置
配置文件中的各种选择不一定都符合你的口味,你可以浏览一下配置文件,根据自 己的喜好作改动。
5,把 Emacs 添加到右键菜单中 (仅 Windows 平台适用)
Windows 下每个用户都有一个隐藏文件夹
C:\Documents and Settings\your_account\SENDTO
把 gnuclientw (我的 emacs-util-w32 文件夹下)的快捷方式放到该目录下,你 就可以用[ 鼠标右键 -> Send To -> gnuclientw ] 将任意文件发送给Emacs 进行 编辑。(你也可以把文本文件的打开方式关联为 gnuclientw)。
6,编译 Elisp 脚本
Emacs 的插件都是用 elisp 脚本写的。虽然这些脚本不必编译且跨平台,但是据说 编译以后运行速度会快很多。所以可以考虑把下面几个比较大的插件编译成字节码。
- ECB: 激活 ECB 后 M-x ecb-byte-compile
- elib: 进入elib的目录运行make
- JDE: 激活JDE后 M-x jde-compile-jde
- Muse
8,Enjoy It
A1,我用到的 Emacs 扩展
emacs-lisp:
ascii.el
bbdb-2.34
browse-kill-ring.el
cedet-1.0pre3
cn-calendar.el
color-theme.el
cscope-indexer
ctypes.el
ecb-2.32
eim
elib-1.0
games
gnuserv.el
htmlize.el
ibuffer.el
jde-2.3.5.1
longlines.el
member-functions.el
muse
nxml-mode-20041004
python-mode-1.0
recentf.el
rfcview.el
session.el
setnu+.el
setnu.el
source-safe.el
tabbar.el
table.el
toggle-window-dedicated.el
unichars.el
w32-fontified-region-to-clipboard.el
w32-winprint.el
w3m
xcscope.el
xmlunicode.el
A2, Windows 应用程序
Cygwin 提供了 Windows 下 Emacs 用到的大部份应用程序,除 Cygwin 外我还用了 以下软件。
emacs-util-w32:
cscope.exe
gnuclient.exe ---+
gnuclientw.exe --+---- gnuserv
gnudoit.exe ---+
gnuserv.exe ----+
plink.exe --------- For tramp/ssh.


