[新規] [編集]
Flymake
Emacs > Emacs の Tips >
Flymake は,make? を利用してリアルタイムにプログラムの構文をチェックするシステムである.
エラーやウォーニング部分をハイライト表示し,エラー内容を表示したりエラー行へ移動することができる.
Flymake は,make? を利用してリアルタイムにプログラムの構文をチェックするシステムである.
エラーやウォーニング部分をハイライト表示し,エラー内容を表示したりエラー行へ移動することができる.
インストール
Emacs 22 以降には標準装備されている.
設定
基本設定
~/.emacsに以下を追記する.
これで,プログラムソースを保存すると構文チェックが行われる.
(require 'flymake) (add-hook 'c++-mode (flymake-mode) )C++ の場合だけ Flymake を起動しているが,他の言語でも同様にすればよい.
これで,プログラムソースを保存すると構文チェックが行われる.
エラー表示
デフォルトではエラー内容がポップアップで表示されるが,ミニバッファに表示するには~/.emacsに以下を追記する.
とするとミニバッファにエラー内容が表示される.
(defun flymake-display-err-minibuf-for-current-line ()
"Displays the error/warning for the current line in the minibuffer"
(interactive)
(let* ((line-no (flymake-current-line-no))
(line-err-info-list (nth 0 (flymake-find-err-info flymake-err-info line-no)))
(count (length line-err-info-list))
)
(while (> count 0)
(when line-err-info-list
(let* ((file (flymake-ler-file (nth (1- count) line-err-info-list)))
(full-file (flymake-ler-full-file (nth (1- count) line-err-info-list)))
(text (flymake-ler-text (nth (1- count) line-err-info-list)))
(line (flymake-ler-line (nth (1- count) line-err-info-list))))
(message "[%s] %s" line text)
)
)
(setq count (1- count)))))
エラーかウォーニングのある行で M-x flymake-display-err-minibuf-for-current-lineとするとミニバッファにエラー内容が表示される.
キーバインド
構文チェックやエラー表示,エラー部分への移動のキーバインドを設定していると便利である.~/.emacsに以下を追記する.
(define-key c++-mode-map "\C-cc" 'flymake-start-syntax-check) (define-key c++-mode-map "\C-ce" 'flymake-display-err-minibuf-for-current-line) (define-key c++-mode-map "\C-cn" 'flymake-goto-next-error) (define-key c++-mode-map "\C-cp" 'flymake-goto-prev-error)この場合は以下のように設定しているが,これは好みのキーに割り当てればよい.
| 処理 | キーバインド |
|---|---|
| 構文チェック | C-c c |
| エラー表示 | C-c e |
| 次のエラー部分へ移動 | C-c n |
| 前のエラー部分へ移動 | C-c p |
使い方
- プログラムのソースファイルを開く
- Flymake が起動する
- モード行に "Flymake" と表示されていればよい
- モード行に "Flymake" と表示されていればよい
- ソースを編集して保存する
- 構文チェックが行われる
- チェック中はモード行の "Flymake" の後ろに "*" が現れる
- チェック中はモード行の "Flymake" の後ろに "*" が現れる
- エラーやウォーニング部分がハイライトされる
- エラーは赤,ウォーニングは青くなる
- モード行の "Flymake" の後ろにエラー数とウォーニング数が表示される
- エラーは赤,ウォーニングは青くなる
- エラー行へ移動して修正する
- 3に戻る