flymakeの設定する前に flycheckを確認しよう

flycheck/flycheck · GitHub


twitterで前に少し書いたのですが、記事にもしておきます。


動的にエラー表示を行なってくれる flymakeはとても便利なんですが、
設定が面倒です。初期関数だったり、エラー出力を解析するための正規表現
指定やら、苦労したことある人は多いと思います。


そんな人に flycheckはお勧めです。簡単に言うと各言語用の flymakeの設定を
まとめてくれているパッケージです。対応言語も多く、設定も簡単なのです。


対応言語

2013年 1月 25日現在以下の言語に対応しています。

インストール

MELPAには登録されているので package.elを使っている人は
以下のようににしてください。

  M-x package-refresh-contents
  M-x package-install flycheck


el-getには現状登録されていないので、レシピを自分で書く等
してください。


設定

対応するモードの hookに flycheck-modeを追加するだけです。

;; Python
(add-hook 'python-mode-hook 'flycheck-mode)

;; Ruby
(add-hook 'ruby-mode-hook 'flycheck-mode)

おわりに

特殊な設定を要する場合は自作する必要がありますが、ただエラーチェックを
したいという場合はまず flycheckが対応しているか確認しましょう。もし
未対応で汎用的に使えるっていうものがあれば、flycheckへ pull requestする
ことを検討してみるとよいかと思います。

おまけ

flymakeを使う場合は、flymake-goto-next-error、flymake-goto-prev-error
適当なキーに割り当てておくと便利です。smartrepを使うと少々長いキーを
割り当てても楽に移動できます。以下は私の設定です。

;; flymake
(smartrep-define-key
    global-map "M-g" '(("M-n" . 'flymake-goto-next-error)
                       ("M-p" . 'flymake-goto-prev-error)))