我在Emacs中使用flymake来检查用多种语言编写的代码。但是,我看不出有任何方法可以在elisp上使用flymake。
我知道elint-current-buffer
和byte-compile-file
,它们都提供了有关未定义变量等的有用警告。奇怪的是,它们并不总是给出相同的错误:例如,elint不会警告(require 'cl)
。我也尝试了auto-compile-mode
(可在MELPA上找到),但这仍然会将警告写入单独的缓冲区。
当我输入错误时,我真的希望我的elisp代码被加下划线。我该怎么做呢?我以前配置过flymake,但那是外部程序,而不是Emacs本身。
答案 0 :(得分:5)
答案 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)