カテゴリ:辞書

xyaku

●説明

辞書が勉強にとって大切なのは、 「EB, EPWING辞書サーバndtpd+クライアントbookview」で 述べられている通りです。 コンピュータの辞書は、紙の辞書に比べて格段に辞書をひくときに伴う 「面倒くささ」を減らしてくれます。 しかし、専用クライアントの利用もまだ面倒くさいという人もいるかと思います。 Emacs類を使っていると、 この中で閉じて一通りの作業ができるため、 もう少し辞書引きの手間が減らせます。 こちらは田岡さんの連載である「Emacsを使いこなそう」などに詳しいため、 ここでは取り扱いません。

さて、マウスだけでWebブラウジングなどをしているときに、 ふとわからない単語がでてきた場合どうしましょうか? 辞書クライアントを立ち上げ、単語を入力しなどの手順は面倒くさく 感じないでしょうか? また、Web上の辞書引きサイトを利用する手もありますが、 いつもどこでもインターネットへつながっていられるものでしょうか?

xyakuは、マウスで選択することでXのカットバッファに 読み込んだものを、適当なプログラムに渡して得られた出力を表示するプログラムです。 標準入力から問い合わせ文字列を入力し、 標準出力から得られた結果 [1] を出力するプログラムであれば、 どのようなプログラムでも利用可能です。 標準では、フリーの英和辞書edictなどを利用して、 英和、和英が、 更に追加設定することで英英辞書やEPWING/EB形式などの辞書の検索が可能です。 もちろん、自分でプログラムを作成できれば、 マイ情報検索フロントエンドとしても利用可能になります。

●インストール

ja-xyakuをパッケージやportからインストールします。 ja-edictやja-ruby-ebなども依存関係によって自動的にインストールされます。

英英辞書を利用する場合は、追加で dict(textproc/dict) をインストールしておきましょう。 インターネットが利用できない場合は、 辞書サーバnet/dictd と 辞書であるnet/dictd-database のインストールも必要です。 今回はこの辺りの設定に関しては省略します。

●設定

●●基本設定

基本的な設定ファイルや、この中で利用されるスクリプト類は /usr/X11R6/libexec/xyaku/ (以後、${xyaku}と表記)に 置かれています。 とりあえず、${xyaku}/xyakurcを ホームディレクトリに.xyakurcという名前でコピーします。

	  % cp ${xyaku}/xyakurc ${HOME}/.xyakurc
	

次に使用中のウインドウマネージャのマニュアルや 設定などを確認してください。 後述のデフォルト設定が、ショートカットキーに割り当てられている場合、 期待した動作をしない可能性が高いです。 この場合は、ウインドウマネージャ側で対処するか、 xyakuの設定ファイルでキーを変更するかになります [2]

EPWING/EB形式などの辞書を利用する場合は、辞書も用意してください。 デフォルトの設定はCD-ROMをマウントして利用する形態になっています。

●●DICTサーバを利用するための設定

英英辞書を利用するためには、 Internetへの接続性を確保するか、 Dictionary Server Protocol (RFC2229)に従ったサーバを用意する必要があります。 ただし、辞書検索クライアントによっては設定ファイルでローカルの 辞書ファイルを検索することが可能なものもあります。

前者の場合は、追加でDICTプロトコルクライアントをインストールします。 様々なクライアントがありますが、サンプルスクリプトでは dictdict.pldefの順でいずれかが パスに入っている必要があります。

後者の場合、ローカルにDICTサーバをあげる必要があります。 今回は、dictdの設定方法に関しては省略させていただきます。

●使用方法

xyakuをコマンドラインから起動します。 毎回起動しておくには、 .xinitrcなどでバックグラウンド実行で 起動しておくと良いでしょう。

デフォルト設定では、 マウスで検索したい文字を選択したあとで Ctrl-F1 を押すことで、画面上にedictを利用して検索した結果が表示されます (図1)。

図 1. xyakuでの検索の様子

portやパッケージでインストールされる標準設定には、 他にも表1のような辞書検索プログラムが 設定されています。 これらはシェルやRubyのスクリプトですので、 手軽に読んで書き換えることが可能です。 デフォルト以外の設定で利用する場合は、 直接書き換えるしか方法が無い場合もありますので、 スクリプトの勉強がてら挑戦してみてください。 親切なスクリプトはコマンドラインオプションで設定変更可能ですので、 この場合は~/.xyakurcの編集で設定変更しましょう。

ここで書かれている自動モードは、マウスで選択すると自動的に 次々検索結果を表示するモードです。

表 1. 標準初期設定ファイルのキーバインド

キー機能利用スクリプト備考
Ctrl-F1edictを利用した検索edict.sh 
Ctrl-F2EPWING/EBのCD-ROM辞書の検索searcheb.rbデフォルトでは辞書はマウントして利用
Ctrl-F3DICTサーバ(http://www.dict.org/)を用いた辞書検索dict.sh本文を参照
Ctrl-F4Web検索エンジンを用いて検索websearch.shデフォルトではyahooを利用
Shift-F1ヘルプが表示されるhelp.sh 
Ctrl-F10キャッシュをクリアclearcache.sh 
Alt-F1[自動モード]edict検索edict.sh 
Alt-F2[自動モード]EB/EPWING検索searcheb.rb 
Alt-F3[自動モード]DICTサーバ検索dict.sh 

標準設定で含まれている以外にも、 ${xyaku}にはいくつかのスクリプトが含まれています表2。 とりあえず、興味のあるスクリプトがあれば、 基本設定ファイルをまねてこれらのスクリプトを指定してみましょう。 期待通りの動作をしない場合はスクリプトを読んでみましょう。 これが、UNIXを使う上での極意です。

表 2. 標準配布物に含まれるそのほかのプログラム

スクリプト機能備考
showrc.shxyakuの設定ファイルを表示設定のデバッグに便利
ndtp.rbNDTPD [a] 経由で辞書をひく三田先生の記事(p.???)も参照
openurl.sh選択したURLをブラウザで開くNetscapeなどの既存ブラウザで開く機能が必要
注意:
a. http://www.sra.co.jp/people/m-kasahr/ndtpd/

実は、このプログラムはアプリケーション呼び出しボタンとしても使えます。 単にコマンドを呼び出した上で、戻ってくるスクリプトを用意し、 設定ファイルでこれを呼び出すだけです。 これに関しては付属ドキュメント /usr/X11R6/share/doc/xyaku/READMEに記述がありますので、 こちらをご覧下さい。

最後に、選択した単語からman -kを実行して 表示するスクリプトを紹介します(図2)。 ただし、かなり手抜きの実装になっていますので、 実際に利用する際には他の付属スクリプトも参照して、 エラー処理などを追加してください。

図 2. man -k実行スクリプト:man.sh

--------------------------------------------------
#!/bin/sh

read target
/usr/bin/man -k ${target}
--------------------------------------------------
      

あとは、設定を追加します。 筆者は、自分で作成したものは自分のホームディレクトリ以下に入れておいた方が良いと思います。 したがって、以下のような設定を追加すれば良いでしょう。 これで、Ctrl-F5でこのスクリプトが 実行されるようになります。

	ModulePath  /usr/home/whoami/bin/xyaku/addin
	Key F5 C false 0 0 0 man.sh
      
これだけのことで、簡単に関連コマンド一覧が得られますので、 驚きです。 是非、実際に作成して試してみてください。

●参考資料

/usr/X11R6/share/doc/xyaku/内のドキュメント。 しかし、もっと役に立つのは /usr/X11R6/libexec/xyaku/の中身の全て。

注意

[1]

あとで述べますが、出力は無くてもかまいません。

[2]

例えば、 著者の常用しているWindows Makerの場合、 デフォルトのedit検索 Ctrl-F1 はうまく動かない場合もありました。