EmacsのflymakeにてC++11の文法を自動チェックさせる


このエントリーをはてなブックマークに追加

~/.emacs.d/init.elに以下を加えると、キーを打つたびにC++11の文法チェックが自動で走るようになります。

;; 参考:http://d.hatena.ne.jp/suztomo/20080905/1220633281
(require 'flymake)
(defun flymake-cc-init ()
  (let* ((temp-file   (flymake-init-create-temp-buffer-copy
                       'flymake-create-temp-inplace))
         (local-file  (file-relative-name
                       temp-file
                       (file-name-directory buffer-file-name))))
    (list "g++" (list "-std=c++11" "-Wall" "-Wextra" "-fsyntax-only" local-file))))

(push '("\\.cpp$" flymake-cc-init) flymake-allowed-file-name-masks)

(add-hook 'c++-mode-hook
          '(lambda ()
             (flymake-mode t)))

元ネタは emacsでミスを教えてくれるflymakeをC++のために使うための設定 - suztomoの日記。これに-std=c++11を加えたのが上のコードです。