Monday, April 24, 2006

Emacs 一些常用包

Emacs 一些常用包

参考newsmth.net的emacs版,bethoven@smth的windows下使用Emacs

1. mule-gbk
用于中文编码,直接复制里面的.el文件就可以用了。
参见这里
emacs 23 就不需要这个包了。不过据说现在23版本还有很多Bug, 而且没有正式的预编译版本,所以暂时先搁着了。

2. wdired
用于在dired模式下直接修改文件或目录名(默认配置按r)
下载wdired.el到%HOME%/site-lisp/
在.emacs添加:
(require 'wdired)
(autoload 'wdired-change-to-wdired-mode "wdired")
(define-key dired-mode-map "r"
'wdired-change-to-wdired-mode)


3. color-theme
很多漂亮的配色主体。我现在用gnome2感觉挺舒服的。下载
(require 'color-theme)
(color-theme-gnome2) ;; change the theme here


4. cygwin-mount
windows下Emacs最好配合cygwin使用,这样就能用ediff(文件比较)这样的功能了。
参见这里

5. ido
加强c-x c-f(find file)和c-x b(切换buffer)功能。由于备选文件和备选Buffer存在Cache里,所以切换Buffer和寻找文件非常迅速。有点像i-search那样,只要输入文件名的一部分就能找到文件了。按方向键或者C-s, C-r可以在ido-find-file切换匹配的Buffer或文件名。
(require 'ido)
(ido-mode t)

用了ido后有一些“副作用”,比如回去访问过的ftp上找匹配的文件名,这样会很慢,解决方法看这里

6. ibuffer
加强c-x c-b (buffer list)的功能,用起来和目录差不多, 按 g 刷新
(require 'ibuffer)
(global-set-key (kbd "C-x C-b") 'ibuffer)
(autoload 'ibuffer "ibuffer" "List buffers." t)

7. dired-single
只产生一个dired buffer.
(require 'dired-single)
(define-key dired-mode-map (kbd "RET") 'joc-dired-single-buffer)
(define-key dired-mode-map (kbd ".")
'(lambda ()
(interactive)

(joc-dired-single-buffer "..")))

副作用是回上层目录不能选..了,只能另找个按键代替,这里用了"."
刚改进了一下dired-single返回上层目录的功能,返回上层目录后光标停在原先的目录名上。

8. midnight
自动整理Buffer. 到午夜会自动关闭一些很久不用的buffer。

9. rect-mark
矩形操作或者说列操作。使用方法在rect-mark.el里有。基本上就是C-x r + 常规区域操作。

10. gnuserv/gnuclient
可以让emacs代替notepad了。
参见这里
如果使用TC的话可以用ChoiceEditor把文本文件绑定到gnuclientw.exe上。就可以非常方便地用F4启用Emacs了。
更新 2007/3/20:
最新的NT Emacs 22 和 23 已经带了 emacsclient.exe 和 emacsclientw.exe,所以gnuserv就不用装了。使用方法是,在~/.emacs里加上这些:
(server-start)
;;退出的时候删掉server文件
(add-hook 'kill-emacs-hook
(lambda()
(if (file-exists-p "~/.emacs.d/server/server")
(delete-file "~/.emacs.d/server/server"))))
用emacsclientw.exe打开文件的方法是:
d:\Emacs\bin\emacsclientw.exe -f "d:\Emacs\home\.emacs.d\server\server" -n -a "d:\Emacs\bin\runemacs.exe" path\to\file
11. w32-browser
在windows里相当好用。
加上下面几句:
(require 'w32-browser)
(eval-after-load "dired"
'(define-key dired-mode-map [f4] (lambda ()
(interactive)
(w32-browser
(dired-replace-in-string
"/" "\\"
(dired-get-filename))))))


在dired浏览文件时只要按F4就能用对应的windows程序打开文件了。
del.icio.us Tags:

1 comment:

叶挺锋 said...

midnight 的作用据我所知是这样的:
它是给那些开了emacs就不关的人用的,定期把前面打开的buffer关了。就像名字所说的那样,过了午夜,前一天的buffer就给你关了