Tör*_*bor 5 emacs buffer filtering elisp compilation
我有一个HTML页面,已html-mode
启用.我调用函数sgml-validate
来检查是否有任何标记错误.它基于compilation-mode
.我想从编译输出中删除一些警告,所以我编写了一个函数并将其挂钩compilation-filter-hook
(此变量未记录,但compilation-filter
调用它).一切正常.我的问题是,当我在HTML页面(通过sgml-validate
)上启动编译过程时,如何确保只调用我的过滤器函数?
我看到两种方法,但没有一种方法可行:
major-mode
.但它总是返回compilation-mode
,因为在*compilation*
缓冲区上启用了它.(我在源代码中grep+
找到了一个过滤函数,他们确实检查了它的值major-mode
.我无法弄清楚它是如何正常工作的.)听起来您可以建议 smgl-validate 以便它在执行所有其他操作之前执行过滤。例如:
(defadvice sgml-validate(围绕修复过滤命令激活) (let ((返回值 ad-do-it)) (过滤器函数返回值))))