Emacs で文書を編集している際に、英単語の意味が分らないとか、単語の綴りを忘れてしまったとかいうことがあります。 こういった時に便利と思われるものを紹介しておきます。 なお、辞書検索の lookup は別にしてあります。
簡単な日本語<-->英語辞書です。 言葉の説明とか用例は載っていませんが、日本語とそれに対する英語のペアが記述されている辞書を使って、片方から他方を検索することが出来ます。
必要なものは、辞書の本体である edict と、それを扱うための
edict.elです。
例えば
ftp://ftp.u-aizu.ac.jp/pub/SciEng/nihongo/ftp.cc.monash.edu.au/
あたりから edict を手に入れて、適当なディレクトリに置きます。また、
edict.el
を
load-path に置き、
バイトコンパイルしておきます。
その後、.emacs.el
に
(autoload 'edict-search-english "edict" "Search for a translation of an English word") (autoload 'edict-search-kanji "edict" "Search for a translation of a Kanji sequence") (global-set-key "\e*" 'edict-search-english) (global-set-key "\e_" 'edict-search-kanji) (setq *edict-files* '("/usr/local/share/emacs/site-lisp/edict"))
と書いておけば OK.
ただし、
*edict-files*
の値は edict のファイルの場所
を指定して下さい。
これで次回から英単語の上で ESC-* とタイプするか、また日本語の単語をリージョンで囲んで ESC-_ とタイプすれば、
それらの言葉を含んだ辞書の行が表示されます。
辞書を追加するには、
(setq *edict-files* '("/usr/local/share/emacs/site-lisp/edict" "~/lib/mydic"))
のように複数の辞書を指定するだけで OK です。 辞書の形式は簡単なので、自分で追加して利用することもできます。 (便利そうな辞書が出来たら教えて下さい。)
UNIX には ispell という多言語対応の有名なスペルチェッカがあって、TeX での命令語を無視してスペルチェックしてくれるので便利です。 以前は GNU が配布しているものと、そうでないものの二通りあって、GNU の配布ではなかった方がお薦めでした。 (GNU の方が version が新しかったりして混乱した時期もあった。)
ところが、最近の GNU の配布には、お薦めの ispell-3.1 の方が含まれているようです。こうなった経緯は現在の ispell-3.1 の中の Contributors というファイルに書かれてます。何はともあれ、誤解や混同がなくなって喜ばしい限り。
ただし、(もはや net からは消えつつある) ispell-4.0 の中には正規表現が使える look が含まれていて、これはこれで便利なような気がするので、そういうのを使いたい場合は、ispell-4.0 を見つけてきて残しとくのもいいかも。
で、これを Mule のバッファで実行するための
ispell.el
があります。これは ispell のパッケージ
に附属しています。 (Mule にも附属してますが、多分古いために使えない。)
ispell をインストールする必要があります。 ispell.el は、もともとの Emacs の配布の中に含まれています。
Calcをインストールしていない状態なら多分
M-# で
ispell-buffer
かなんかが起動すると思います。
そうでない場合は真面目に M-x ispell-buffer としてコマンドを打込みましょう。
他には、ispell-word
とか ispell-region
とかいうコマンドもあります。
頻繁に使う場合は、どこかのキーに割当てておくと便利。
英語で文章を書いていて、ちょっと綴りが曖昧だなという場合があります。 UNIX には look というコマンドがあり、例えばコマンドラインで
% look dict
と入力すると、
dicta dictate dictatorial diction dictionary dictum
のように補完出来る単語を表示してくれます。 これを利用して、Emacs のバッファで単語を補完したい場合に使えるのが、 中島幹夫さんの書かれた look.el です。
そのオリジナルを少々書き直したものが look.el です。 例によって、 load-path に置き、バイトコンパイルしておきます。
そして .emacs.el
に
(load "look")
などと書いておきます。
良く使う場合は
(global-set-key "\M-L" 'look-here)と書いておきます。\M-L のところは好きなキーを指定して下さい。
普通に文章を打っていて congratulate の綴を忘れた場合、cong と打ってそ の直後にカーソルがある状態で M-x look-here な いしは上で割り当てたキーをタイプします。すると、エコーラインに
A: congenially S: congested D: congestion F: congratulate 4/22
のように表示されます。ここで f とタイプすれば congratulate と補完されるはずです。もしこの中に目的の単語が無ければ SPC を押すことで次の候補を表示、 x や DEL で前候補を 表示してくれます。また、q や ESC で抜けられます。
GNU の look なら正規表現による補完も可能で、例えば misc.*ous の次で look を起動すれば、misc から始まって途中に ous を挟む単語を補完できます。 因みに、私が使っている Linux のパッケージの Slackware-3.4 では look は BSD 系のが入ってるみたいなので、GNU のに入れ変えました。
で、ちょっと試してみたところ、私の環境 (Linux + bash + Emacs 21) では
call-process
のところでクォートがうまく行ってないみたいで失敗するので、
look.el
の 102,103 行目を
(call-process "look" nil t nil "-r" incomp)))
で置き換えています。対処療法ですが。
また `、' や `。' に続く単語を補完しようとしても、これらの文字まで単語 に含めてしまうためにうまく行きません。 これは、ここに置いてあるものは look-skip-characters でカスタマイズできるようにしてあります。 例えば
(setq look-skip-characters "^ \t\n`\"()。、「」『』()")
という感じで指定すれば OK です。