Elisp本身有flymake模式吗?

时间:2013-04-02 13:51:09

标签: emacs elisp

我在Emacs中使用flymake来检查用多种语言编写的代码。但是,我看不出有任何方法可以在elisp上使用flymake。

我知道elint-current-bufferbyte-compile-file,它们都提供了有关未定义变量等的有用警告。奇怪的是,它们并不总是给出相同的错误:例如,elint不会警告(require 'cl)。我也尝试了auto-compile-mode(可在MELPA上找到),但这仍然会将警告写入单独的缓冲区。

当我输入错误时,我真的希望我的elisp代码被加下划线。我该怎么做呢?我以前配置过flymake,但那是外部程序,而不是Emacs本身。

3 个答案:

答案 0 :(得分:5)

Emacs维基有this来说明关于emacs lisp的flymake,虽然看起来不是很完整。

flycheck支持Emacs Lisp“开箱即用”。

答案 1 :(得分:1)

Erefactor相当不错,可以从wiki和melpa获得:http://www.emacswiki.org/emacs/erefactor.el

我也喜欢运行checkdoc post-save:

 (defun emagician/run-checkdoc () 
   "run checkdoc on save if it is an elisp file"
   (if (and (eq major-mode 'emacs-lisp-mode)
            (> (length buffer-file-name)
               (length package-user-dir))
            (not (string= (concat package-user-dir "/")
                          (substring buffer-file-name 0 (+ 1 (length package-user-dir))))))
       (checkdoc)))

 (add-hook 'after-save-hook 'emagician/run-checkdoc)

答案 2 :(得分:0)

现在内置了 elisp-flymake-byte-compile 后端用于 flymake。
要启用将此添加到配置:

(add-hook 'emacs-lisp-mode-hook #'flymake-mode)