发博文
心在天山

http://blog.chinaunix.net/space.php?uid=7717190

Software design is a craft worth all the intelligence, creativity, and passion you can muster -- Eric S. Raymond (The Art of Unix Programming)   
个人资料
  • 博客访问:169525
  • 博文数量:107
  • 博客积分:2595
  • 博客等级:少校
  • 注册时间:2006-09-01 13:02:41
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
配置 GNU Emacs (2006-10-10 20:51)
分类: Emacs

配置 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.

[发评论] 评论 重要提示:警惕虚假中奖信息!
  • chinaunix网友 2007-11-02 09:12
    >>请问如何进行多文档查找?以前我用的是editplus 我知道在linux下可以使用grep 但似乎emacs for win没有附带grep?因为每次都说找不到程序。,。 本文第0节提到如何安装、配置cygwin。它提供了windows版的grep等很多工具。强烈建议安装。 如果不愿意装cygwin的话,也可以用 dired-do-search。不过我觉得这个没有grep-find 好用。 dired-do-search is an interactive compiled Lisp function in `dired-aux.el'. It is bound to A, . (dired-do-search regexp) Search through all marked files for a match for regexp. Stops when a match is found. To continue searching for next match, use command M-,.
  • chinaunix网友 2007-11-01 14:25
    你好 我使用的是emacs for win 请问如何进行多文档查找?以前我用的是editplus 我知道在linux下可以使用grep 但似乎emacs for win没有附带grep?因为每次都说找不到程序。,。。
  • chinaunix网友 2007-05-23 12:07
    _emacs 指的是emacs的配置文件。在UNIX下为“.emacs”。它在用户的HOME目录下。 你可以自己写一个全新的.emacs。但一般都是从别人那(或网上)复制一个过来,再根据自己的需要修改。 我的配置文件已经放在我的blog里了。不过里面用到很多插件,如果你没有,必须把相应的配置注释掉。
  • chinaunix网友 2007-05-22 21:58
    请问_emacs文件在哪,如何复制
亲,您还没有登录,请[登录][注册]后再进行评论