我已经升级到Emacs 23.3版本,现在*Compile-Log*
缓冲区不停地打开,报告错误信息,例如:
Warning: `font-lock-beginning-of-syntax-function' is an obsolete variable (as
of Emacs 23.3); use `syntax-begin-function' instead.
我假设未来的上游作者会解决这些警告。在那之前,我该如何防止这些错误出现并打开一个新窗口?
我已经升级到Emacs 23.3版本,现在*Compile-Log*
缓冲区不停地打开,报告错误信息,例如:
Warning: `font-lock-beginning-of-syntax-function' is an obsolete variable (as
of Emacs 23.3); use `syntax-begin-function' instead.
我假设未来的上游作者会解决这些警告。在那之前,我该如何防止这些错误出现并打开一个新窗口?
另一问题使我回到了23.2,但在尝试23.3时,我想出了一个解决方法。它简单地防止该变量被视为过时的,但在Mumamo解决这个问题之前,这似乎更可取!
;; Mumamo is making emacs 23.3 freak out:
(when (and (equal emacs-major-version 23)
(equal emacs-minor-version 3))
(eval-after-load "bytecomp"
'(add-to-list 'byte-compile-not-obsolete-vars
'font-lock-beginning-of-syntax-function))
;; tramp-compat.el clobbers this variable!
(eval-after-load "tramp-compat"
'(add-to-list 'byte-compile-not-obsolete-vars
'font-lock-beginning-of-syntax-function)))
警告有四个级别选项:
更多信息请参阅Emacs手册。
我通过在elisp上运行以下代码修复了它:
sed -i.bak 's/font-lock-beginning-of-syntax-function/syntax-begin-function/g' `find . -name '*.el' -exec grep -l 'font-lock-beginning-of-syntax-function' {} \;`
Phils的解决方案由于某种原因对我无效。这里有一种更低级别的方法来完成它。
(remprop 'flet 'byte-obsolete-info)
(remprop 'labels 'byte-obsolete-info)
cl
包中调用的remprop
函数。 - manylegged