emacs 设置erlang-flymake
erlang-flymake 是emacs自带的。可以看erlang-flymake.el里面的文件说明
核心在于:1)用erlc 来检查 2)用complie_file/2来脚本化定制
里面关键在于3个变量
;; * erlang-flymake-get-code-path-dirs-function ;;检查目标文件
;; * erlang-flymake-get-include-dirs-function ;;目标工程所在的include目录
;; * erlang-flymake-extra-opts ;;编译的erlc 或compile_file/2 里面-I选项
因为对lisp不是很熟悉:每次都报找不到头文件。
所以我把erlang-flymake-get-include-dirs-function 写死为我的项目头文件中
这样就可以了。
也可以这样:
http://stackoverflow.com/questions/13927247/erlang-flymake-with-nested-folders-in-src-cannot-find-includes-folder
以后就可以改掉:一直按保存的坏习惯啦。。。。
[img]http://dl2.iteye.com/upload/attachment/0088/1865/dba95a9c-0f7e-3ec0-ab3a-9d69fef471e6.jpg[/img]
erlang-flymake 是emacs自带的。可以看erlang-flymake.el里面的文件说明
核心在于:1)用erlc 来检查 2)用complie_file/2来脚本化定制
里面关键在于3个变量
;; * erlang-flymake-get-code-path-dirs-function ;;检查目标文件
;; * erlang-flymake-get-include-dirs-function ;;目标工程所在的include目录
;; * erlang-flymake-extra-opts ;;编译的erlc 或compile_file/2 里面-I选项
因为对lisp不是很熟悉:每次都报找不到头文件。
所以我把erlang-flymake-get-include-dirs-function 写死为我的项目头文件中
(inc-dir-opts
(erlang-flymake-flatten
(mapcar (lambda (dir) (list "-I" dir))
(list "f:/project/include" "f:/project/include/error"))))
这样就可以了。
也可以这样:
http://stackoverflow.com/questions/13927247/erlang-flymake-with-nested-folders-in-src-cannot-find-includes-folder
.emacs里面的设置
(require 'erlang-flymake)
;;仅在存盘时进行检查
(erlang-flymake-only-on-save)
;;键盘映射
(defvar flymake-mode-map (make-sparse-keymap))
(define-key flymake-mode-map (kbd "<f3>") 'flymake-goto-next-error)
(define-key flymake-mode-map (kbd "C-c <f3>") 'flymake-goto-prev-error)
(define-key flymake-mode-map (kbd "<f4>") 'flymake-display-err-menu-for-current-line)
(or (assoc 'flymake-mode minor-mode-map-alist)
(setq minor-mode-map-alist
(cons (cons 'flymake-mode flymake-mode-map)
minor-mode-map-alist)))
以后就可以改掉:一直按保存的坏习惯啦。。。。
[img]http://dl2.iteye.com/upload/attachment/0088/1865/dba95a9c-0f7e-3ec0-ab3a-9d69fef471e6.jpg[/img]