分类: LINUX
2007-05-16 12:48:21
在Windows下使用Emacs
安装Emacs
1. 到 下载emacs的Windows编译版本,包括两个文件 emacs-21.3.50.1-20050130c-w32.zip 和 emacs-21.3.50.1-20050130-lisp.zip
2. 将 emacs-21.3.50.1-20050130c-w32.zip 解压缩到想要放置的目录,这里为 D:\Program Reserved\emacs-21.3.50.1-20050130c-w32
3. 将 emacs-21.3.50.1-20050130-lisp.zip 也解压缩在这个目录,然后设置环境变量
4.
HOME=D:\Program Reserved\emacs-21.3.50.1-20050130c-w32
这样在以后 .emacs.d 目录和 .emacs 文件就都在 $HOME 目录下面了,但是这个方法并不好,因为设置 $HOME 会影响 Cygwin 和 MSYS 等很多东西,所以最好的方法是在注册表中设置 HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs\HOME=%emacs_dir%
5. 需要自己添加的el文件放在 D:\Program Reserved\emacs-21.3.50.1-20050130c-w32\site-lisp 里面即可
安装auctex
1. 到 下载auctex,然后解压到任意目录,不过不要解压到 $HOME 目录下面,这里解压缩到 D:\auctex
2. 然后可以根据 INSTALL.windows 这个文件进行安装,用cygwin安装的步骤如下:
3. $cd d: (或者$cd /cygdrive/d)
4. $cd auctex
5. $./configure --prefix=d:/"Program Reserved"/emacs-21.3.50.1-20050130c-w32
6.
--with-emacs=d:/"Program Reserved"/emacs-21.3.50.1-20050130c-w32/bin/emacs.exe
7. $make
8. $make install
(注意上面对于有空格的目录要加双引号,同时用/而不是\,用d:而不是/cygdrive/d)
这样,可以在 $HOME\site-lisp 目录下面看到生成了 auctex 目录,同时在 $HOME 目录下面也生成了一个 var 目录
9. 在 $HOME\.emacs 文件中添加
10. (require 'tex-mik)
11. (setq TeX-electric-escape t)
这样就可以正常使用auctex了
安装mule-gbk
安装mule-gbk后可以显示更多的汉字,比如朱镕基的“镕”,如果不用mule-gbk是无法正确显示的
1. 到 下载mule-gbk,然后解压到任意目录,不过不要解压到 $HOME 目录下面,这里解压缩到 D:\mule-gbk-0.1.2004080701 ,然后仿照auctex的安装方法即可,用cygwin安装的步骤如下:
2. $cd d: (或者$cd /cygdrive/d)
3. $cd mule-gbk-0.1.2004080701
4. $./configure
5. $make
6. $make lispdir=d:/"Program\ Reserved"/emacs-21.3.50.1-20050130c-w32/site-lisp install
(注意上面和auctex不同,有空格的目录名空格前要加入一个\)
最后一条命令中, lispdir 指定的是el文件安装的目录
7. 现在在 .emacs 中加入
8. (setq w32-charset-info-alist
9.
(cons '("gbk" w32-charset-gb2312 . 936) w32-charset-info-alist))
10. (set-w32-system-coding-system 'chinese-gbk)
11. (set-selection-coding-system 'chinese-gbk)
12. (set-keyboard-coding-system 'chinese-gbk)
13. (set-language-environment 'chinese-gbk)
14. (setq locale-coding-system 'chinese-gbk)
15. (setq current-language-environment "Chinese-GBK")
呵呵,中文问题解决了
安装aspell
1. 到 下载Windows下的aspell安装程序和词典,这里下载的是 Aspell-0-50-3-3-Setup.exe 和 Aspell-en-0.50-2-3.exe
2. 安装即可,这里安装到 D:\Program Reserved\Aspell
3. 设置环境变量,将 D:\Program Reserved\Aspell\bin 加入到 $Path 中
4. 到 下载最新的 ispell.el ,这里下载的是 ispell.el-3.6 ,将其改名为 ispell.el 放到 $HOME\site-lisp 目录下
5. 在 .emacs 中加入
6. (setq-default ispell-program-name "aspell")
7. (setq-default ispell-local-dictionary "american")
8. (global-set-key (kbd "") 'ispell-complete-word)
这样就可以使用拼写检查功能了,但是绑定到F8上的complete-word命令还是无法使用,这个需要解决
安装Mew
1. 到 下载Mew的Windows版本这里下载的是Mew 4.2,文件为 MEW42W0.ZIP
2. 将 MEW42W0.ZIP 解压,这里解压到 E:\Download\Temp\MEW42W0\mew-4.2
3. 安装前需要设置好两个环境变量:一个是 $HOME 变量,当然这在安装emacs的时候已经设置好了,另一个是 $TZ 变量,这个是时区,设置为 JST-8
4. 注意emacs在Windows下需要执行 $HOME\bin\addpm.exe 来进行一下安装,否则Mew会认为没有安装emacs,然后在cygwin下进行编译:
5. $cd e:
6. $cd Download/Temp/MEW42W0/mew-4.2/
7. $./configure
8. $make
9. 在命令行下执行
10. >mew
然后就根据提示来安装吧
11. 注意我安装完成之后发现mew所用的图片都没有安装,将解压出来的mew-4.2目下的 etc 目录复制到 D:\Program Reserved\emacs-21.3.50.1-20050130c-w32\site-lisp\mew\ 就可以了
12. 注意mew中的邮件默认是utf-8编码的,所以需要在mule-gbk的环境下使用utf-8支持,具体看一下 mule-gbk-0.1.2004080701.tar.gz 中的 README.unicode ,具体方法为在在 .emacs 文件中添加
13. ;; Unicode support, for Emacs CVS (21.3.50) only
14. (when (fboundp 'utf-translate-cjk-mode)
15. ;; Load modified utf-translate-cjk-mode
16. (require 'gbk-utf-mode)
17. ;; Turn on utf-translate-cjk-mode
18. (utf-translate-cjk-mode 1)
19. ;; Setup X selection for unicode encoding
20. (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)))
这样,就可以存取中文Unicode编码的文件了,具体使用方法是:
C-x RET f utf-8 RET |
将当前缓冲区的编码改为utf-8然后保存 |
C-x RET c utf-8 RET C-x C-s filename RET |
在保存时转换文件格式 |
C-x RET r utf-8 RET |
用这个命令重新以utf-8编码加载文件 |
21. mew的设置和使用请看
用gnuserv给Emacs插上翅膀
通常情况下,用Emacs编辑文件需要先启动Emacs,然后C-x C-f,再输入文件的路径,这是很麻烦的,尤其对于用惯了图形界面的人更是不便,这个问题可以用gnuserv解决,是Windows下编译好的gnuserv。
gnuserv的安装非常简单,将上面压缩包中的 gnuserv.el 放到 $HOME/site-lisp 目录下,再把release文件夹下的几个可执行文件放到 $HOME/bin 目录下,然后在.emacs中加入:
(require 'gnuserv)
(gnuserv-start)
这样就可以用 gnuclientw.exe 打开文件了,再建立一个 gnuclientw.exe 的快捷方式放到“Documents and Settings\username\SendTo”目录下,就可以用右键的“发送到”菜单把文件传输到Emacs中编辑了。
gnuclientw.exe 默认是用一个新的frame打开文件,在.emacs中添加下面的命令可以设置在原来的frame中打开文件:
;; 在当前frame打开
(setq gnuserv-frame (selected-frame))
;; 打开后让emacs跳到前面来
(setenv "GNUSERV_SHOW_EMACS" "1")
如果你喜欢在新的frame中打开文件,绑定下面几个控制frame的函数,操作frame会简单一些:
;; 关闭一个frame,绑定到 C-F4
(global-set-key [(control f4)] 'delete-frame)
;; 在两个frame中切换
(global-set-key [(control tab)] 'other-frame)
(global-set-key [(control shift tab)] '(lambda ()
(interactive)
(other-frame -1)))