simec

Table of Contents


Node: Top, Next: , Previous: (dir), Up: (dir)

へなちょこシリーズ:SIMEC

このドキュメントは、へなちょこシリーズSIMEC(Simple IME Control) の説明書です。SIMECの実態は、IMEの辞書ユーティリティです。

このファイルの版数 $Revision: 1.4 $

Copyright 2003 by Tadamegu Furukawa


Node: Intro, Next: , Previous: Top, Up: Top

はじめに

「へなちょこシリーズ:SIMEC」のSIMECはSimple IME Controlの略 です。名前からすると、`IMEの制御'ですが、実態は、IMEの辞書ユーティリティ です。Emacs で文書を書いていると、IMEで変換出来ない単語は、辞書登録を行 うのですが、IMEの辞書ユーティリティを起動するのが面倒でこのようなツール を作成してしまいました。因みに何ゆえ「へなちょこシリーズ」かというと、私 が、たまにしか、elispを書かないので、何時までたっても、へなちょこなelisp しか書けない為です。

Mule for Windowsの時は、win32-ime-register-word-dialogでIMEの単語 登録のダイアログが表示できたのですが、Meadow以降は出来ないようです(多分: 私が知らないだけじゃないですよね?)

SIMECはその特性上、Windows上のEmacsでのみ動作します。正確には、elisp自体 はEmacs20以上で動作すると思うのですが、IMEを操作する外部コマンドを使用し ていますので、結果的にWindows以外では使用出来ない事になります。また、IME (Input Method Editor)のAPIの多くが Windows NT version 4.0 以上 (Windows NT 3.1で使用可能なものもありますが)及び、Windows 95 以上でな いと使用出来ませんので、結果的には、

となります。実際に当方で、動作確認を行っているのは、Windows 2000/Xpのみ です。他のOSでも多分、大丈夫だと思います。また、実際に動作確認を行った Emacsは以下のVersionのみです。


Node: Outline, Next: , Previous: Intro, Up: Top

概要

SIMECはEmacsから、少しだけIMEの制御を行う事ができます。実際は、辞書のメ ンテナンスを行う為のユーティリティなので、以下に示す事を行う事が出来ます。


Node: Installation, Next: , Previous: Outline, Up: Top

インストール


Node: Install-imec, Next: , Previous: Installation, Up: Installation

imec.exeのインストール

SIMECは、外部コマンドとして、imec.exeを使用しますので、先ずはこれ をインストールする必要があります。どこにインストールしても構わないのです が、ここでは、以下のディレクトリにインストールしたものとして説明を行いま す。これ以外のディレクトリにインストールした場合は適宜読み替えて下さい。 以下は私のMeadow配下のディレクトリ構成です(デフォルトでは site-binとかsite-infoといったディレクトリは存在しません)。 尚、imec.exeの使用方法については、本ドキュメントでは解説しません ので、添付のマニュアルreadme.txtを参照して下さい。

     Meadow
     ├─1.99a5
     │ ├─bin        ← ここがexec-directory
     │ ├─data
     │ ├─etc
     │ ├─info
     │ ├─leim
     │ ├─lisp
     │ ├─lock
     │ └─site-lisp
     ├─site-bin       ←ここにインストールした例
     ├─site-info
     └─site-lisp
     

SIMECにimec.exeの場所を通知する必要がありますので、 ~/.emacs等の何処かに

     (setq simec-command
           (expand-file-name (concat exec-directory
                                     "../../site-bin/imec.exe")))
     

と記述します。この例はあくまで、上記のディレクトリにimec.exeをイ ンストールした場合です。他のディレクトリにインストールした場合は適宜書き 換えが必要です。また、imec.exeが環境変数PATHで指定したディ レクトリに含まれている場合は、上記の設定は必要ありません。


Node: Install-simec, Next: , Previous: Install-imec, Up: Installation

simec.elのインストール

imec.exeのインストールが終了したら、SIMECの本体である simec.elのインストールを行います。インストールは、simec.el を環境変数EMACSLOADPATHに含まれるディレクトリにコピーするだけです。 上記のディレクトリ構成の例ですと Meadow/site-lisp にコピーすると 良いでしょう。必ずしも、このディレクトリにインストールする必要はありませ んが、他のディレクトリにインストールした場合は、後に説明する ~/.emacsの設定を読み替えて下さい。

また、必要に応じてバイトコンパイル(byte-compile-file)して下さい。 因みに私は、バイトコンパイルは行っていません。

インストールが終了したら、~/.emacs等の何処かに

     (autoload 'simec "simec" "Simple IME Control." t)
     (autoload 'simec-register-word "simec" "IME: Register word" t)
     (autoload 'simec-register-word-region "simec" "IME: Register word" t)
     (autoload 'simec-register-word-buffer "simec" "IME: Register word" t)
     (autoload 'simec-register-word-file "simec" "IME: Register word" t)
     (autoload 'simec-unregister-word "simec" "IME: Unregister word" t)
     (autoload 'simec-unregister-word-region "simec" "IME: Unregister word" t)
     (autoload 'simec-unregister-word-buffer "simec" "IME: Unregister word" t)
     (autoload 'simec-unregister-word-file "simec" "IME: Unregister word" t)
     

と記述します。インストール先が、環境変数EMACSLOADPATHに含まれてい ない場合は、autoloadの二番目の引数"simec"は書き換えが必要に なります。

また、上記の記述は、SIMECを使用しない場合は、simec.elをロードしな いように(極僅かですが、メモリ消費量を抑える為)考慮しているのですが、特に 気にしない場合は、

     (load "simec")
     

でもかまいません。また、単語登録を頻繁に行う場合は、グローバルキーに simec-register-wordを割り当てておくと便利です。例えば、C-c r で単語登録を行えるようにする場合は、以下のように設定します。

     (global-set-key "\C-cr" 'simec-register-word)
     


Node: Install-info, Previous: Install-simec, Up: Installation

infoのインストール

これが読めているという事は、infoのインストールが終わっているという事のよ うな気がするのですが・・・

  1. simec.infoファイルをINFOPATHに設定されているディレクトリに コピーしてください。
  2. そのディレクトリのdirファイルに以下の記述を追加してください。
              * simec: (simec).              Simple IME Control
              

    また、install-infoでインストールする事も可能です。以下の例は、カ レントディレクトリがINFOPATHに設定されているディレクトリの場合の 例です。

              install-info ./simec.info ./dir
              


Node: Operate, Next: , Previous: Installation, Up: Top

操作方法


Node: Viewing, Next: , Previous: Operate, Up: Operate

一覧の表示

この章ではIMEの辞書に登録している単語の一覧表示を行う方法と、一覧表示の バッファで行う操作方法について説明します。正しくインストールされているの であれば、

M-x simec

と入力する事により、SMICが起動します。ミニバッファに

を入力するように促しますので、一覧抽出したい「よみ」、「単語」、「品詞」 を入力してください。「品詞」は入力補完が出来るようになっています。全ての 単語を一覧表示する場合は、全ての問い合わせに対してリターンを押下してくだ さい。 Fig:simec

上記のような一覧が新しいバッファに表示されます。このバッファでは、カーソ ルの移動を以下のキーで行います。

j
n
カーソルを一行下に移動します。
k
p
カーソルを一行上に移動します。

カーソルの移動以外のキー操作は以下の通りです。

?
一覧表示画面の簡単なヘルプを表示します。
D
カーソル行の単語を辞書から削除します。
N
新しい抽出条件で一覧を表示します。
q
Q
一覧表示を終了します。
R
カーソル行の単語の登録内容変更します。
d
削除マークを付けます。既に削除マーク([D])が付いている場合は、削除 マークを外します。削除マークをつけるだけで、削除は行いません。 Fig:unregister-mark
g
同じ抽出条件で一覧を再表示します。
r
IME辞書に単語を新規登録します。
x
削除マークの付いている単語を一括削除します。
C-x C-w
C-x C-s
一覧表示されている内容をテキストファイル(Spec-Text)に保存します。 なお、このキーのバインドは、直接C-x C-w, C-x C-sに対 して行っているのではなく、それぞれglobal-mapsave-bufferwrite-fileに対して行っていますので、global-mapを変更している 場合は、このキーとは異なるキーにバインドされます。


Node: Register-word, Next: , Previous: Viewing, Up: Operate

単語の新規登録

新規に単語登録を行う場合は、カレントバッファが一覧(*simec*)であ れば、

r

を押下する事により、単語を新規に登録する事ができます。ミニバッファから、 「よみ」、「単語」、「品詞」を入力します。他のバッファで単語を新規登録す る場合は、

M-x simec-register-word-buffer

と入力する事により、同様の操作で単語の新規登録を行います。このコマンドを 頻繁に使用する方は、グローバルキーに割り当てておくと便利です (Install-simec)。

単語登録の為に用意している関数を以下に列挙します。特に明記していない限 り、キーバインドは行っていませんので、使用する場合はM-xに続けて 関数名を入力して下さい。

simec-register-word Function
単語を新規登録します。カレントバッファが一覧(*simec*)であれば、 rキーを押下する事によって、同様の事を行います。ミニバッファから、 「よみ」、「単語」、「品詞」を入力し、単語登録を行います。

simec-register-word-file Function
テキストファイル(Spec-Text)の内容で単語を一括登録します。登録結果 を、*simec-result*バッファに表示します。以下に例を示します。
Fig:simec-result

simec-register-word-buffer Function
カレントバッファの内容で単語を一括登録します。バッファの内容は、SIMEC で扱えるテキストファイル(Spec-Text)と同様の形式である必要がありま す。他の動作は、simec-register-word-fileと同様です。

simec-register-word-region Function
カレントバッファのリージョンの内容で単語を一括登録します。他の動作は、 simec-register-word-fileと同様です。

simec-update-word Function
一覧バッファ(*simec*)のカーソル行の単語の登録内容を更新します。 一覧バッファでRキーを押下すると呼び出します。このコマンドは、一 覧バッファ以外では使用できません。


Node: Unregister-word, Next: , Previous: Register-word, Up: Operate

単語の削除

単語の削除は、一覧バッファ(*simec*)での操作の方が簡単です。一覧 バッファで、

D

キーを押下する事で、カーソル行の単語を辞書から削除します。また、

d

キーで、削除マークを付けておいて、xキーで纏めて削除する事ができ ます。Viewingにも記述しています。

単語削除の為に用意している関数を以下に列挙します。特に明記していない限 り限り、キーバインドは行っていませんので、使用する場合はM-xに続 けて関数名を入力して下さい。

simec-unregister-word Function
ミニバッファから「よみ」、「単語」、「品詞」の入力を要求し、条件が一致 した場合、単語を削除します。

simec-unregister-current-word Function
一覧バッファ(*simec*)のカーソル行の単語を削除します。一覧バッファ であれば、Dキーにバインドされます。この関数はカレントバッファが 一覧バッファ以外では使用出来ません。

simec-unregister-word-file Function
テキストファイルの内容で単語を一括削除します。他の動作は、単語登録を行 うsimec-register-word-fileと同様です(Register-word)。

simec-unregister-word-buffer Function
カレントバッファの内容で単語を一括登録します。他の動作は、単語登録を行 うsimec-register-word-bufferと同様です(Register-word)。

simec-unregister-word-region Function
カレントバッファのリージョンの内容で単語を一括登録します。他の動作は、 単語登録を行うsimec-register-word-regionと同様です (Register-word)。


Node: Others-CMD, Previous: Unregister-word, Up: Operate

その他のコマンド

単語登録、単語の削除以外のコマンドについて記述します。

simec-version-show Function
SIMECのヴァージョンをミニバッファに表示します。

simec-id-show Function
simec.elのヴァージョンコントロールIDをミニバッファに表示します。


Node: Spec-Text, Next: , Previous: Operate, Up: Top

SIMECが扱うテキストファイル

SIMECでは、単語の一括登録、一括削除をテキストファイルを使用して行う事が 出来ます。このテキストファイルは、IME形式のテキストファイルと互換性が 多分あります。

よみ、単語、品詞をTABコード(TABコードは必ず一つだけ)で区切って一行に 記述し、それらを複数行記述した形式(一行でも可)です。行の先頭が ! の場 合はコメント行として処理します。また、空行は無視します。以下にファイルの 例を示します。

     ! Emacs 21.1.1 / Mule 5.0 (賢木) / Meadow-1.99 Alpha5 (TSUCHIKURE)
     ! $Id: simec.el,v 1.2 2003/05/16 12:47:16 tfuruka1 Exp $
     ! $Revision: 1.2 $
     ! Format: WORDLIST
     ! DateTime: Sat May 17 16:58:50 2003
     
     あずかりきん    預り金  名詞
     あらいがえ      洗替    名詞
     えだばん        枝番    名詞
     おうか          押下    名詞
     おつなか        乙仲    名詞
     


Node: Lisp-variables, Next: , Previous: Spec-Text, Up: Top

カスタマイズ変数一覧

simec-hook Variable
simecのフックです。一覧表示した後に呼びだれれます。

simec-result-hook Variable
simec-resultのフックです。単語登録又は削除結 果を表示するバッファ*simec-result*を作成した後に呼び出されます。

simec-command Variable
IME を制御する外部コマンドimec.exe を指定します。パスが張られていない 場所に imec.exe が存在している場合は, フルパスで指定して下さい。具体的 な設定例については、simecのインストールの節(Install-simec)を参照 して下さい。

simec-buffer Variable
一覧表示を行うバッファ名です。

simec-work-buffer Variable
作業用の隠しバッファ名です。

simec-result-buffer Variable
単語の登録、削除の実行結果を表示するバッファ名です。

simec-work-in-buffer Variable
作業用の隠しバッファです。標準入力用として使用します。

simec-yomi-width Variable
一覧表示する時の、「よみ」の最低文字数です。

simec-word-width Variable
一覧表示する時の、「単語」の最低文字数です。

simec-part-of-speech-width Variable
一覧表示する時の、「品詞」の最低文字数です。通常、 simec-yomi-width, simec-word-widthと共に設定します。

simec-part-of-speech-alist Variable
品詞の連想リストです。この変数は、よほどの理由が無い限り(使用する品詞 を絞り込みたい場合等)、
          '()
          

以外を設定しないで下さい。この連想リストが設定されている場合、 imec.exeから、品詞の取得を行わなくなります。


Node: Copying, Previous: Lisp-variables, Up: Top

取り扱い

本ツールは、フリーソフトウエアです。入手したアーカイブのままの形式であ れば、再頒布、転載は可能とします。但し、このソフトウエアを使用した事に よって発生した損害等は、如何なる場合においても、作者には責任は無い事と します。個人の責任において使用して下さい。

質問、苦情、バグ報告、改良案等は、以下のメールアドレスへお願いします。

tfuruka1@nifty.com