次のページ 前のページ 目次へ

5. Emacs で使う

UNIXコマンドとして実用的にするためには、 Emacsとお友達になるのが一番です。Emacsは普通のエディタどころか、何でもでき る万能選手であることは少し UNIXをいじった人なら周知の事実です。 日本人が英語に悩むのはみんな同じなので、すでに似たような Emacs Lisp が以下の URL にありますが、僕も作ってみましたので、紹介します。

    http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic

5.1 dictionary.el

次のコマンドで、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)

と適当なキーに割り当ててください。 コマンド名が gene で始まるのは、ただ筆者が昔 gene 辞書を使っていたからです。 当然 dictionary.el は、英辞郎でも使えます。 Emacsを suspend することはほとんどありえないので、ここでは Ctrl+Z に割当てるものとして話を進めます。

kon を使う人は解像度を 800x600 にしてください。 100桁 x 37行 なので、VGA で kon を使っている人から見るとより画面が広くなった ように感じます。 800x600 で kon を使うには、

$ kon stealth 
を試してみてください。筆者の環境ではうまくいきましたが、 うまくいかないこともあるかもしれません。

うまくいかないときは、gene-word 関数の


  (gene-string (downcase (buffer-substring beg end))))
   ^^^^^^^^^^^

の部分を gene-string-1 に変えてください。

5.2 さあ、使ってみましょう

基礎の基礎

man page でも何でもいいから、英文を Emacs のバッファに読みこんでください。 そして、単語の上にカーソルを置いて、C-z を押してください。 すると、画面が2分割して、 *GENE* というバッファに意味が出てくるか、 別なフレームに表示されます。

すでに活用語尾解析をする辞書引き を作成しましたので、先頭が大文字であろうが、過去形だろうが、現在分詞だろう が、比較級だろうが、ちゃんと原形を検索してくれるはずです。

また、 M-C-z でプロンプトを表示します。英語(熟語も可)を入れたら英和辞 典として起動しますし、日本語を入れたら和英辞典として起動します。

*GENE* バッファでの操作

*GENE* というバッファ(最初にスペースがあることに注意)に移ると独特の操作が可能です。

画面が分割されている状態で *GENE* バッファで [RET] を押すと、 その行がもう一つのウィンドウ(厳密には 'C-u -1 C-x o' で切替えられるウィンドウ) のバッファに挿入されます。 英文を読んでいて、単語リストを作りたいときに便利です。

また、 *GENE* バッファの中で英和辞典を起動するときは C-M-z を省略できます。 アルファベット文字 a を押すと、 C-M-z a と押したのと同じ状態になります。 つまり、 *GENE* バッファの中では英単語を入力して [RET] を押すだけで 英和辞典が引けるのです。 ただ、和英辞典として使うときはちゃんと C-M-z を押さなくてはなりません。

5.3 矢印キーを使って快適に英文を読みたい人へ(ノートパソコン向け)

筆者のようにノートパソコンを持っているなら、矢印キーの左には 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)

の記述を加えます。これで、バッファがリードオンリーのときに矢印キーを押 せば、ワード単位にカーソルが移動します。なぜそのように設定したかという と、リードオンリーのときにはメッセージを読むことが多く、このような場合、1文字単位にカーソルが移動してしまっては、遅すぎてストレスになるからです。

ノートユーザなら今日から英文ドキュメントは右手だけで読みましょう!

5.4 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)

の記述を加えます。ドラッグするとき、リージョンが反転表示されなくなりま すが、マウスでちゃんと copy & yank ができます。

ただ、この操作性を実現するには、かなり広い解像度が必要です。 800x600 程度だと無理があるでしょう。 筆者のようにノートパソコンで最大解像度が 800x600 ならば、 X を使うことはあまり おすすめできません。ノートパソコンで Windows を使っている人を見ていても、 Word や Excel を最大表示して、トラックボールでぎこちなくマウスカーソルを動か している姿は見るに耐えません。 window system は、「広い解像度を持つ画面」、 「使い易いマウス」、「速いビデオカード」のうちどれ一つでも欠けていたら、 決して使いやすくはありません。全ての操作をキーボードでやるくらいだったら、 いっそのこと kon を使いましょう。kon こそがあなたの求めているものです。


次のページ 前のページ 目次へ