LanguageTool
vi にあるのに Emacs にないという状況なので即興で作ってみました。
github に上げています。
http://github.com/mhayashi1120/Emacs-langtool/raw/master/langtool.el
私は長い英語の文章は書かないので、というより書けないのであまり嬉しさは分からないのですが、まあ動くみたいです。
LanguageTool の方にバグがあるらしく、ときどき出力される行や列がずれてしまうようです。
インストール
LanguageTool - Spell and Grammar Checker をダウンロードして展開してください。私は展開したものを ~/lib/java/LanguageTool-X.X/ に置いています。詳しくは official サイトを参照してください。
以下は参考までに
mkdir -p ~/lib/java/ mv LanguageTool-X.X.zip ~/lib/java/ cd ~/lib/java/ unzip LanguageTool-X.X.zip
お決まりですが langtool.el を load-path に置いてください。
設定
.emacs に以下のように設定してください。
(require 'langtool) (setq langtool-language-tool-jar "/path/to/languagetool-commandline.jar")
この設定は必要だったらしてください。ispell が M-$ なので C-x4 を prefix にしてみました。
(global-set-key "\C-x4w" 'langtool-check) (global-set-key "\C-x4W" 'langtool-check-done) (global-set-key "\C-x4l" 'langtool-switch-default-language) (global-set-key "\C-x44" 'langtool-show-message-at-point) (global-set-key "\C-x4c" 'langtool-correct-buffer)
java のことはよく知らないのですが、GNU バージョンの java *1 だと動かなかったです。(2011 年当時)
(setq langtool-java-bin "/path/to/java")
私が使ってる java のバージョンは以下の通りです。 apt では openjdk-6-jre-headless で入るものだと思います。
java version "1.6.0_32" OpenJDK Runtime Environment (IcedTea6 1.13.4) (6b32-1.13.4-1~deb7u1) OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
使い方
check したいバッファで C-x4w で LanguageTool を呼び出します。
実行後 C-x4c で LanguageTool の提案する修正候補を対話しながら確認、修正することができます。
赤くなったエラーのところで C-x44 するとエラー内容を表示します。
無視したいルールがある場合はこんな感じでルールを追加していってください。
(setq langtool-disabled-rules '("WHITESPACE_RULE"))
まとめ
スペースの連続とかクオートの使い方が間違っているとか、そういうことしか教えてくれない感じがします。役に立つのでしょうか。。ispell の方がはるかに有用な感じはしますが、今後に期待するべきかもしれません。
現状では日本語はルールが少なく使い物にならないと思われます。
以上、簡単ながら langtool.el の解説でした。LanguageTool の使い方が違うとか、 langtool.el がバグってるとかあったら教えてください。
改訂履歴
2011-02-05
2014-11-15 現状の仕様に合わせて設定方法を追記、補正。