怎样对 Emacs 内置的函数进行 advice

Vim、Emacs配置和使用
回复
sonchonjay
帖子: 60
注册时间: 2007-04-12 23:20

怎样对 Emacs 内置的函数进行 advice

#1

帖子 sonchonjay » 2008-03-24 11:09

emacs的dired功能很强大,但是在目录跳转的时候会产生很多buffer,虽然用a进入可以避免,但是^回原目录的时候还是会产生新buffer。在网上搜索了一下说可以通过对内置函数进行advice来实现单buffer。代码如下:

(defadvice dired-find-file (around dired-find-file-single-buffer activate)
"Replace current buffer if file is a directory."
(interactive)
(let ((orig (current-buffer))
(filename (dired-get-file-for-visit)))
ad-do-it
(when (and (file-directory-p filename)
(not (eq (current-buffer) orig)))
(kill-buffer orig))))
(defadvice dired-up-directory (around dired-up-directory-single-buffer activate)
"Replace current buffer if file is a directory."
(interactive)
(let ((orig (current-buffer)))
ad-do-it
(kill-buffer orig)))

我的问题是不知道怎么进行advice,直接新建一个.el的文件还是怎样?
请做过相关设置的高手不吝赐教!
头像
zhan
帖子: 1880
注册时间: 2005-08-15 0:04
来自: 南7技校

#2

帖子 zhan » 2008-03-24 18:05

写进 .emacs 吧
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn
sonchonjay
帖子: 60
注册时间: 2007-04-12 23:20

#3

帖子 sonchonjay » 2008-03-24 19:44

直接写进去吗?好,我试试
redflow
帖子: 264
注册时间: 2007-05-14 23:14

#4

帖子 redflow » 2008-03-27 22:14

用dired-single就可以了
KDE!!!
Linux 发行版永远都是在重复造轮子。
Linux 发行版总是把应由开发者关心问题抛给普通用户。
回复