yunfeng's profile淡水随风PhotosBlogListsMore Tools Help

Blog


    September 22

    在Windows下使用Emacs

    转载自:

    http://learn.tsinghua.edu.cn:8080/2004211031/publish/GNU/ntemacs.html

     

    top在Windows下使用Emacs

    top安装Emacs

    1. http://nqmacs.sourceforge.net 下载emacs的Windows编译版本,包括两个文件 emacs-21.3.50.1-20050130c-w32.zipemacs-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 也解压缩在这个目录,然后设置环境变量
      HOME=D:\Program Reserved\emacs-21.3.50.1-20050130c-w32
      
      这样在以后 .emacs.d 目录和 .emacs 文件就都在 $HOME 目录下面了,但是这个方法并不好,因为设置 $HOME 会影响 CygwinMSYS 等很多东西,所以最好的方法是在注册表中设置 HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs\HOME=%emacs_dir%
    4. 需要自己添加的el文件放在 D:\Program Reserved\emacs-21.3.50.1-20050130c-w32\site-lisp 里面即可

    top安装auctex

    1. http://www.gnu.org/software/auctex/ 下载auctex,然后解压到任意目录,不过不要解压到 $HOME 目录下面,这里解压缩到 D:\auctex
    2. 然后可以根据 INSTALL.windows 这个文件进行安装,用cygwin安装的步骤如下:
      $cd d: (或者$cd /cygdrive/d)
      $cd auctex
      $./configure --prefix=d:/"Program Reserved"/emacs-21.3.50.1-20050130c-w32
                   --with-emacs=d:/"Program Reserved"/emacs-21.3.50.1-20050130c-w32/bin/emacs.exe
      $make
      $make install
      
      (注意上面对于有空格的目录要加双引号,同时用/而不是\,用d:而不是/cygdrive/d)
      这样,可以在 $HOME\site-lisp 目录下面看到生成了 auctex 目录,同时在 $HOME 目录下面也生成了一个 var 目录
    3. $HOME\.emacs 文件中添加
      (require 'tex-mik)
      (setq TeX-electric-escape t)
      
      这样就可以正常使用auctex了

    top安装mule-gbk

    安装mule-gbk后可以显示更多的汉字,比如朱镕基的“镕”,如果不用mule-gbk是无法正确显示的

    1. http://mule-gbk.sourceforge.net/ 下载mule-gbk,然后解压到任意目录,不过不要解压到 $HOME 目录下面,这里解压缩到 D:\mule-gbk-0.1.2004080701 ,然后仿照auctex的安装方法即可,用cygwin安装的步骤如下:
      $cd d: (或者$cd /cygdrive/d)
      $cd mule-gbk-0.1.2004080701
      $./configure
      $make
      $make lispdir=d:/"Program\ Reserved"/emacs-21.3.50.1-20050130c-w32/site-lisp install
      
      (注意上面和auctex不同,有空格的目录名空格前要加入一个\)
      最后一条命令中, lispdir 指定的是el文件安装的目录
    2. 现在在 .emacs 中加入
      (setq w32-charset-info-alist
          (cons '("gbk" w32-charset-gb2312 . 936) w32-charset-info-alist))
      (set-w32-system-coding-system 'chinese-gbk)
      (set-selection-coding-system 'chinese-gbk)
      (set-keyboard-coding-system 'chinese-gbk)
      (set-language-environment 'chinese-gbk)
      (setq locale-coding-system 'chinese-gbk)
      (setq current-language-environment "Chinese-GBK")
      
      呵呵,中文问题解决了

    top安装aspell

    1. http://aspell.net/win32/ 下载Windows下的aspell安装程序和词典,这里下载的是 Aspell-0-50-3-3-Setup.exeAspell-en-0.50-2-3.exe
    2. 安装即可,这里安装到 D:\Program Reserved\Aspell
    3. 设置环境变量,将 D:\Program Reserved\Aspell\bin 加入到 $Path
    4. http://kdstevens.com/~stevens/ispell-page.html 下载最新的 ispell.el ,这里下载的是 ispell.el-3.6 ,将其改名为 ispell.el 放到 $HOME\site-lisp 目录下
    5. .emacs 中加入
      (setq-default ispell-program-name "aspell")
      (setq-default ispell-local-dictionary "american")
      (global-set-key (kbd "") 'ispell-complete-word)
      
      这样就可以使用拼写检查功能了,但是绑定到F8上的complete-word命令还是无法使用,这个需要解决

    top安装Mew

    1. http://www.mew.org/Win32/ 下载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下进行编译:
      $cd e:
      $cd Download/Temp/MEW42W0/mew-4.2/
      $./configure
      $make
      
    5. 在命令行下执行
      >mew
      
      然后就根据提示来安装吧
    6. 注意我安装完成之后发现mew所用的图片都没有安装,将解压出来的mew-4.2目下的 etc 目录复制到 D:\Program Reserved\emacs-21.3.50.1-20050130c-w32\site-lisp\mew\ 就可以了
    7. 注意mew中的邮件默认是utf-8编码的,所以需要在mule-gbk的环境下使用utf-8支持,具体看一下 mule-gbk-0.1.2004080701.tar.gz 中的 README.unicode ,具体方法为在在 .emacs 文件中添加
      ;; Unicode support, for Emacs CVS (21.3.50) only
      (when (fboundp 'utf-translate-cjk-mode)
        ;; Load modified utf-translate-cjk-mode
        (require 'gbk-utf-mode)
        ;; Turn on utf-translate-cjk-mode
        (utf-translate-cjk-mode 1)
        ;; Setup X selection for unicode encoding
        (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编码加载文件
    8. mew的设置和使用请看这里

      top用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)))