Mule で文書を編集している際に、英単語の意味が分らないとか、単語の綴りを忘れてしまったとかいうことがあります。 こういった時に便利と思われるものを紹介しておきます。
簡単な日本語<-->英語辞書です。言葉の説明とか用例は載っていませんが、日本語とそれに対する英語のペアが記述されている辞書を使って、片方から他方を検索することが出来ます。
必要なものは、辞書の本体である edict と、それを扱うための
edict.elです。
neumann を使ってる場合は、どちらも既に
/usr/local/lib/mule/site-lisp
の下にあります。
他の環境でインストールしたい場合は、例えば
ftp://ftp.u-aizu.ac.jp/pub/SciEng/nihongo/ftp.cc.monash.edu.au/
あたりから edict を手に入れて、適当なディレクトリに置きます。また、
edict.el
を
load-path に置き、
バイトコンパイルしておきます。
その後、.emacs
に
(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/lib/mule/site-lisp/edict"))
と書いておけば OK. (ただし neumann 以外では、最後の
*edict-files*
の値は edict のファイルの場所を指定して下さい)
これで次回から英単語の上で ESC-* とタイプするか、また日本語の単語をリージョンで囲んで ESC-_ とタイプすれば、それらの言葉を含んだ辞書の行が表示されます。
辞書を追加するには、
(setq *edict-files* '("/usr/local/lib/mule/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 をインストールする必要があります。これは桜井さんに頼んで入れてもらうのが正しいのだと思いますが、ひょっとすると /u/s/matsu/bin あたりを、パスの最後に含めておくと使えるかもしれません。 (そんなの危険すぎるって。(^^;) /usr/local/bin にも、最近、西崎さんが入れてくれたものがあるようですが、これは GNU のですね。
次に ispell.el ですが、取り敢えずは /usr/local/lib/mule/site-lisp に置くのは止めておきます。 元の mule 附属のものとぶつかって悩む人がひょっとしたら居るかもしれないので。 ですので、使いたい人はこの ispell.el を取っていって下さい。これを bytecompile して load-path 上に置いておきます。 これだけで使えるようになるはずです。
Calcをインストールしていない状態なら多分 M-# で
ispell-buffer
かなんかが起動すると思います。
そうでない場合は真面目に M-x ispell-buffer としてコマンドを打込みましょう。
他には、ispell-word
とか
ispell-region
とかいうコマンドもあります。
頻繁に使う場合は、どっかにキーに割当てておくと便利。
英語で文章を書いていて、ちょっと綴りが曖昧だなという場合があります。 UNIX には look というコマンドがあり、例えばコマンドラインで
% look dict
と入力すると、
dicta dictate dictatorial diction dictionary dictum
のように補完出来る単語を表示してくれます。
(neumann でも使えます。) これを利用して、Mule のバッファで単語を補完したい場合に使えるのが、この look.el
です。
まずは look.el を取ってきて、例によって、 load-path に置き、バイトコンパイルしておきます。 (この作業は neumann では必要ありません。)
で、.emacs
に
(load "look") (global-set-key "\M-L" 'look-here)
などと書いておきます。
良く使う場合は
(global-set-key "\M-L" 'look-here)
普通に文章を打っていて 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-19.34) では call-process
のところでクォートがうまく行ってないみたいで失敗するので、look.el
の 102,103 行目を
(call-process "look" nil t nil "-r" incomp)))
で置き換えています。対処療法ですが。
また `、' や `。' に続く単語を補完しようとしても、これらの文字まで単語に含めてしまうためにうまく行きません。 これが気になる場合は、79行目辺りの look-skip-chars を定義している部分を書き換えると良いでしょう。私は、
"^ \t\n`\"(" --> "^ \t\n`\"(。、"
のように変更して使っています。