Emacs Wiki に載っててこれは！と思ったので勝手に転載してみる.

この flymake を使うと Ruby でリアルタイムの文法チェックができる.

flymake は, Emacs 22 ならば, デフォルトで入っている.

( require ' flymake ) ( set-face-background ' flymake-errline "red4" ) ( set-face-background ' flymake-warnline "dark slate blue" ) ( defun flymake-ruby-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 "ruby" ( list "-c" local-file )))) ( push '( ".+\\.rb$" flymake-ruby-init ) flymake-allowed-file-name-masks ) ( push '( "Rakefile$" flymake-ruby-init ) flymake-allowed-file-name-masks ) ( push '( "^\\(.*\\):\\([0-9]+\\): \\(.*\\)$" 1 2 nil 3 ) flymake-err-line-patterns ) ( add-hook ' ruby-mode-hook '( lambda () ( if ( not ( null buffer-file-name )) ( flymake-mode ))))

まずい行があると赤く表示されるっぽいね.

けっこう便利かも.

これを利用してると, 凡ミスが減ると思う.



ブクマした記事をとりあえず, メモみたいな意味を込めて超クオリティの低いエントリにしてみた.

これだけじゃあんまりやから,

例えば, 以下の Hello, World を表示するだけの正しいコードを間違えて書いた場合. def test () puts " hello " end test ブクマした記事をとりあえず, メモみたいな意味を込めて超クオリティの低いエントリにしてみた.これだけじゃあんまりやから, スクリーンショット でお茶を濁してみる.例えば, 以下の Hello, World を表示するだけの正しいコードを間違えて書いた場合. こんなことをしてみる. 2行目の「puts "hello"」の最後の「"」を無くしてみる 3行目の「end」を「emd」としてみる. まず1番目.



そして, 2番目.



こんな感じ.

この例はあまりよくなくて, ruby-mode の機能だけで, 今回のエラーは視覚化できちゃう.

ダブルクォーテーション閉じ忘れてたら, その先のコードの色は, 全部変わるし,

end を打ち間違えてたら, 色が付かない. 何より, C-cC-e で end は挿入できる(ruby-insert-end).

でも, この flyamke は, ruby -c コマンドで文法チェックを行っているから, より細かいものにも対応できるはず.

だから, いざ実行段階になって, なんだこのエラー？？？ということになりづらくなると思う.

# リアルタイムでチェックしてるから, 間違ったことを書いたら, すぐ反映されるため.

使っててソンは, 無い機能やと思う.

まあ, 今日はじめて試したばっかやから他の部分で問題が出るかもしれないけど,

その場合, flymake-mode をオフにすればいいだけやしね.



なんかまとまんない記事書いちゃったなあ・・・.

追記 こんなの書いてみると良いかもしれない. ( add-hook ' ruby-mode-hook '( lambda () ( define-key ruby-mode-map "\C-cd" 'flymake-display-err-menu-for-current-line ))) エラーが見つかった行, つまり赤色にハイライトされた行で C-cd とすると, そのエラーの内容がポップアップで表示される.

ポップアップは, ちょっと特殊なもの.

ミニバッファとかじゃない. たぶん, Emacs を端末上で起動したんじゃ使えないと思う. GUI で起動しないと.

そのエラーを表示するウィンドウは, マウスカーソルがあるあたりに出る.

ウィンドウを消すのは, 普通に C-g で消える.

けっこう便利.



こんな感じで表示される. こんな感じで表示される. こーゆーのの表示はミニバッファでいい気がするけどねえ.

(追記)解決!やった. http://d.hatena.ne.jp/khiker/20070720/emacs_flymake



さらに追記 かなりの量ブックマークされてて,

こんなまとまってないエントリなのに悪いな, と思ったので,

他の flymake について書かれているサイトへのリンク集を追記してみる. 本家

http://flymake.sourceforge.net/

http://flymake.sourceforge.net/ php の場合

http://www.blik.it/2007/02/21/syntax-checking-for-php-in-emacs/

http://www.blik.it/2007/02/21/syntax-checking-for-php-in-emacs/ make/ant の場合

http://dev.ariel-networks.com/Members/matsuyama/detect-syntax-errors-by-flymake

http://dev.ariel-networks.com/Members/matsuyama/detect-syntax-errors-by-flymake make の場合

http://d.hatena.ne.jp/pyopyopyo/20070715/p1

http://d.hatena.ne.jp/pyopyopyo/20070715/p1 デモビデオ

http://blog.marcelotoledo.org/2007/07/11/emacs-flymake/ 繋がらなくなった. 分かり易かったのに・・・.

ようつべで似たの見つけた.

http://www.youtube.com/watch?v=F5Cc2W6PbL8