博客园  :: 首页  :: 联系 :: 管理

emacs学习3

Posted on 2013-04-28 15:14  雪庭  阅读(1739)  评论(0编辑  收藏  举报

 

 

emacs学习3

1 emacs24的中ELPA

引用emacswiki.org/emacs/ELPA中对ELPA的描述:

"Our goal is to make it simple to install,use,and upgrade Emacs Lisp packages. We supply ##package.el###,a simple package manager for Emacs,and a repository of pre-packed Emacs Lisp code."

package.el是emacs的包管理工具,自24版开始內置在emacs中,黙认包管理库是FSF的 库,http://elpa.gnu.org/packages/。 ELPA支持多个包管理库,我按照emacswiki中的说 明设置了三个库,gnu库包含的包较少,如cedet,ecb都没有,marmalgae,mepla包含很多 包,有些很新,来源于github:

(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
                         ("marmalage" . "http://marmalade-repo.org/packages/")
                         ("melpa" . "http://melpa.milkbox.net/packages/"))

2 emacs24字体设置

(setq default-frame-alist (font . "Monaco 12")

这是一般用的字体设置,可应用于所有frame的黙认字体,但是对于中英文混排的文章,需 要对中文和英文使用不同的字体。emacs支持根据字符编码找合适的字体,需要按编码进行 设置,如让emacs在遇到汉字时用“微软雅黑”,而不是"Monaco",要这样设置:

(set-fontset-font
  (frame-parameter nil 'font)
  'han
  (font-spec :family "Microsoft YaHei" :size 18))

除了han以外,还有kana,symbol,cjk-misc,bopomofo这些编码集也要设置,可以使用 elisp的dolist做循环操作,减少不必要的重复:

(dolist (character '(han kana symbol cjk-misc bopomofo))
  (set-fontset-font (frame-parameter nil 'font)
     character
     (font-spec :family "Microsoft YaHei" :size 18)))

还有,原来对字体的设置方法要改成下面才能和中文配合,否则emacs会忽略英文字体设置,所 以最终版本是:

(set-face-attribute 
  'default nil :font "Monaco 12")
(dolist (character '(han kana symbol cjk-misc bopomofo))
  (set-fontset-font (frame-parameter nil 'font)
     character
     (font-spec :family "Microsoft YaHei" :size 18)))

看看配置成的效果:

latex-table

3 emacs与windows整合

 

3.1 右键直接打开文件

在配置文件中加入,(start-server t),然后用Emacs编辑一个文件时,可以 用emacsclientw.exe -n –alternate-editor=runemacs "%1"打开文件,可以在已打开的 emacs中显示文件,因为emacs打开后再不关闭,用这种方式打开文件很快。

编辑一个注册表文件:

REGEDIT4
[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\openwemacs]
@="Edit &with Emacs"
# The above value appears in the global context menu,
# i.e., when you right click on a file.
# (The '&' makes the next character a shortcut.)

[HKEY_CLASSES_ROOT\*\shell\openwemacs\command]
@="D:\\soft\\emacs24.3\\bin\\emacsclientw -n --alternate-editor=runemacs \"%1\""
# The above has to point to where you install Emacs

双击加入注册表中,在任一个文件上点右键会出现“Edit with Emacs”,点击“Edit with Emacs” ,文件会在已打开的emacs中出现。

3.2 与vs结合

在vs的菜单“工具”下面通过“外部工具”加入一个自定义的外部工具emacs,命令栏输 入:D:\soft\emacs24.3\bin\emacsclientw.exe,参数栏输入:-n -a "D:\soft\emacs24.3\bin\runemacs.exe" +$(CurLine) $(ItemPath),见下图。

latex-table

打开菜单“选项”下面的“键盘”,点中“工具.外部命令1”,设置快捷 键:”Ctrl+Tab“,见下图,这样每次用vs浏览代码时,如果看到想编辑的内容,直接按 "Ctrl+Tab"就可以把emac呼出,光标会自动放在文件刚刚看到的那行上面,编辑完了再按 "Alt+Tab"切换到vs中。打开菜单“选项”下面的“文档”,选中“自动加载更改(如果已保 存)”,避免毎次都弹出对话框让你确认是否重新载入。

latex-table

 

4 ecb2.4

emacs24.4自带了cedet2.0,从elpa安装ecb2.4后出现错误,运行ecb-activate, 提示说ecb2.4最大支持cedet 1.0.9版本,我们可以在ecb-cedet-wrapper.el 的83行找到最大支持版本的定义:

ECB can only be used with [1.0pre6, 1.0.9]! Please install it and restart Emacs!
(defconst ecb-cedet-required-version-max '(1 0 4 9)
  "Maximum version of CEDET currently accepted by ECB.
See `ecb-required-cedet-version-min' for an explanation.")
;; 改成
(defconst ecb-cedet-required-version-max '(2 0 4 9)
  "Maximum version of CEDET currently accepted by ECB.
See `ecb-required-cedet-version-min' for an explanation.")

byte-compile-file编译ecb-cedet-wrapper.el,关闭emacs,打开emaca,再次运行ecb-activate,出现如下错误:

ECB 2.40 uses CEDET 2.0 (contains semantic 2.2, eieio 1.4, speedbar 1.0).
All requirements for ECB 2.40 fulfilled - Enjoy it!
ad-handle-definition: `custom-save-all' got redefined
The ECB is now deactivated.
ecb-clean-up-after-activation-failure: ECB 2.40: Errors during the basic setup of ECB. (error-type: void-function, error-data: (ecb-enable-own-temp-buffer-show-futition))
Package assoc is obsolete!

解决办法:在ecb.el中找到(ecb-enable-own-temp-buffer-show-futition) 这 句,改为(ecb-enable-own-temp-buffer-show-function),用 byte-compile-file编译ecb.el。

 

Date: 2013-04-28 16:17:02 CST

Author: machine of awareness

Org version 7.8.06 with Emacs version 23

Validate XHTML 1.0