UNIXコマンドとして実用的にするためには、 Emacsとお友達になるのが一番です。Emacsは普通のエディタどころか、何でもでき る万能選手であることは少し UNIXをいじった人なら周知の事実です。 日本人が英語に悩むのはみんな同じなので、すでに似たような Emacs Lisp が以下の URL にありますが、僕も作ってみましたので、紹介します。
http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic
次のコマンドで、emacs lispをload-path の通ったディレクトリに(たとえば /elisp) dictionary.elというファイル名で切り出してください。
perl -ne 'print if ((/^ *;begin dictionary.el/ .. /;end dictionary.el/) );' E_dictionary-mini-HOWTO.sgml > ~/elisp/dictionary.el
その後、.emacsに
(load "dictionary") (define-key global-map "\C-z" 'gene-word) (define-key global-map "\M-\C-z" 'gene-string)
kon を使う人は解像度を 800x600 にしてください。 100桁 x 37行 なので、VGA で kon を使っている人から見るとより画面が広くなった ように感じます。 800x600 で kon を使うには、
$ kon stealthを試してみてください。筆者の環境ではうまくいきましたが、 うまくいかないこともあるかもしれません。
うまくいかないときは、gene-word 関数の
(gene-string (downcase (buffer-substring beg end)))) ^^^^^^^^^^^
man page でも何でもいいから、英文を Emacs のバッファに読みこんでください。 そして、単語の上にカーソルを置いて、C-z を押してください。 すると、画面が2分割して、 *GENE* というバッファに意味が出てくるか、 別なフレームに表示されます。
すでに活用語尾解析をする辞書引き を作成しましたので、先頭が大文字であろうが、過去形だろうが、現在分詞だろう が、比較級だろうが、ちゃんと原形を検索してくれるはずです。
また、 M-C-z でプロンプトを表示します。英語(熟語も可)を入れたら英和辞 典として起動しますし、日本語を入れたら和英辞典として起動します。
*GENE* というバッファ(最初にスペースがあることに注意)に移ると独特の操作が可能です。
画面が分割されている状態で *GENE* バッファで [RET] を押すと、 その行がもう一つのウィンドウ(厳密には 'C-u -1 C-x o' で切替えられるウィンドウ) のバッファに挿入されます。 英文を読んでいて、単語リストを作りたいときに便利です。
また、 *GENE* バッファの中で英和辞典を起動するときは C-M-z を省略できます。 アルファベット文字 a を押すと、 C-M-z a と押したのと同じ状態になります。 つまり、 *GENE* バッファの中では英単語を入力して [RET] を押すだけで 英和辞典が引けるのです。 ただ、和英辞典として使うときはちゃんと C-M-z を押さなくてはなりません。
筆者のようにノートパソコンを持っているなら、矢印キーの左には Alt キー、 右には Ctrl キーがあることが多いです。英文を読むときは、矢印キーと PageUp,PageDown,Space,geneキー(今作ります)があれば事足ります。 ここでは、図のように右手を置いて小指の Ctrl キーで gene-word を起動するように設定します。
+------+------+------+------+------+ | Alt | ← | ↓ | → | Ctrl | +------+------+------+------+------+ 人差指 中指 薬指 小指右Altキーのキーコードは100で、右Ctrlキーのキーコードは97です。キーコー ドは showkey コマンドで調べることができます。オプションなしで showkey コマンドを起動してみてください。10秒待てば勝手に終了してくれます。 なぜ Q とか q で終了しないのかというと、それでは Q とか q 自身の キーコードが調べられないからです。
以下の記述を /mykeymap.map に保存します。
keycode 97 = F20 keycode 100 = space string F20 = "\033[34~"
tcsh,csh を使っている人は .login に、 bash を使っている人は .bash_profile に
loadkeys ~/mykeymap.map
そして、.emacs に
(defun left-x () (interactive) (if buffer-read-only (backward-word 1) (backward-char 1))) (defun right-x () (interactive) (if buffer-read-only (forward-word 1) (forward-char 1))) (define-key global-map [f20] 'gene-word) (define-key global-map [left] 'left-x) (define-key global-map [right] 'right-x)
ノートユーザなら今日から英文ドキュメントは右手だけで読みましょう!
卓上機で X を使っているなら、マウスも使いたいでしょう。当たり前のことで すが、マウスはマウスカーソルが画面中を走り回り、コンピュータに「ここをこ うして」と命令する装置です。その命令を発するのは2つか3つあるボタンです。 また、マウスカーソルが動く速度はキーボードでカーソルを動かす速度よりもずっ と速いものですから、マウスの右クリックで次のページに進んで、わからない単 語があったらダブルクリックで意味を調べればよいでしょう。意味は別なフレー ム(Emacs の X レベルのウィンドウ。Emacs はウィンドウという言葉を別の意味 に使います。)に表示されます。それぞれのフレームを重ならないように置けば よいのです。それにより、
!!キーボードに触らなくてもマウスだけで英文を読めます。!!
この操作性は一度はまったらもうキーボードへ戻れないくらいのものです。なぜ なら、この操作はマウスを最もマウスらしく使う使い方なのですから。
そのためには .emacs に
(define-key global-map [down-mouse-1] nil) (define-key global-map [mouse-3] 'scroll-up) (define-key global-map [double-mouse-1] 'gene-word)
ただ、この操作性を実現するには、かなり広い解像度が必要です。 800x600 程度だと無理があるでしょう。 筆者のようにノートパソコンで最大解像度が 800x600 ならば、 X を使うことはあまり おすすめできません。ノートパソコンで Windows を使っている人を見ていても、 Word や Excel を最大表示して、トラックボールでぎこちなくマウスカーソルを動か している姿は見るに耐えません。 window system は、「広い解像度を持つ画面」、 「使い易いマウス」、「速いビデオカード」のうちどれ一つでも欠けていたら、 決して使いやすくはありません。全ての操作をキーボードでやるくらいだったら、 いっそのこと kon を使いましょう。kon こそがあなたの求めているものです。