Egg ReMix

〜えっぐ・りみっくす〜

たぶんこのページは回ぐらいアクセスされています。

Egg ReMix とは

Tamago 4 (Emacs-20.5 以降で動作する多言語入力フロントエンド) の日本語ローマ字・仮名変換部分を、西村さんが Egg V3 用に開発したegg-mixと同様に、日本語と半角アルファベットの入力モード切り替えが必要ないように拡張する Elisp プログラムです。名前が卵料理ではないのがちょっとアレげではありますが。

Egg ReMix 最新版 (version 0.300 / Mar 9 2005)

最新バージョン:
egg-remix.el
前バージョンとの差分ファイル:
egg-remix.0209-0300.diff
変更点 以前のバージョン
Version 0.209:
egg-remix.0209.el  差分(0208→0209)
Version 0.208:
egg-remix.0208.el  差分(0207→0208)
Version 0.207:
egg-remix.0207.el  差分(0206→0207)
Version 0.206:
egg-remix.0206.el  差分(0205→0206)
Version 0.205:
egg-remix.0205.el  差分(0204→0205)
Version 0.204:
egg-remix.0204.el  差分(0203→0204)
Version 0.203:
egg-remix.0203.el  差分(0202→0203)
Version 0.202:
egg-remix.0202.el  差分(0201→0202)
Version 0.201:
egg-remix.0201.el
Version 0.200:
egg-remix.0200.el

必要な環境

最低限、Tamago 4 が動くことが条件になります。Tamago 4 はTamago Project のページなどから入手できます。また、いくつかパッチが出ているので、少なくともtamago-4.0.6-20000605.patchが当たったTamagoを使ってください。

動作確認は
・Emacs-22.1 + Tamago-CVS (at Jul 30 2002) + Wnn7 で行っています。

(Windows98SE + NTemacs20.6 + Tamago-4.0.6 + 20000605patch + Wnn6 や Meadow でも動くらしいです)
/usr/local/lib/wnn6/usr/lib/wnn7 というシンボリックリンクを張り、Tamago 4 のスタートアップファイル (~/.eggrc) の wnn6-jerver-setup を Wnn7 に付属のスタートアップの内容でオーバーライドすると、そのまま Tamago 4 から Wnn7 を利用できます。(一部要修正)
CVS の Tamago 4 には Wnn7 に対応した eggrc が付属しているようです。
Emacs-21.xだと、そのままではTamagoの環境下でisearchに日本語を入力できません。山内千里さんのページにある修正用コードを読み込むようにすれば解消します。

再配布条件

GPLとします。

設定の仕方

設定は、~/.emacs.el (または ~/.emacs) に書いておきます。基本的には、個人設定用の変数を好みに合わせて変更します。

参考までに、うちで使っている設定です。egg-remix.el~/lisp/egg-remix/egg-remix.el であるものとします。

個人設定の例
注  釈
(setq load-path (cons (expand-file-name "~/lisp/egg-remix") load-path)) ;; load-path に egg-remix のある PATH を追加する
(setq wnn-jserver '("adelie" "gentoo")) ;; jserver が動いているホストを指定する
(setq egg-mode-preference "remix") ;; Tamago の入力モードを Egg ReMix にする
(make-face 'remix-face) ;; 新しいfaceをつくる
(set-face-foreground 'remix-face "blue") ;; faceの前景色をblueにする
(set-face-background 'remix-face "lightskyblue") ;; faceの背景色をlightskyblueにする
(set-face-underline 'remix-face t) ;; 下線つきのfaceにする
(setq remix-fence-face 'remix-face) ;; remixで使うfaceに設定する
(setq its-enable-fullwidth-alphabet nil) ;; 全角アルファベットをフェンスで入力しない
(setq egg-conversion-wrap-select t) ;; 変換モードで候補をサイクリックに選べるようにする
(load "egg-remix") ;; Egg ReMix をロードする

以上の設定をした上でEmacsを起動すれば、普通にC-\で日本語入力モードに移行するとEgg ReMixを使った入力になっています。

Egg ReMix独自、もしくは拡張した設定用の変数
変数名 機能 デフォルト値設定値効果
remix-quiet メッセージを表示するときに ding を抑制するかどうかのフラグ nil non-nil dingしない
nil dingする
remix-remix-fence Egg ReMixを読込んだときに、フェンスの外観パラメータをEgg ReMixで指定したもので初期化するかどうかのフラグ(読込む前に設定する) t non-nil 初期化する
nil 初期化しない
remix-fence-invisible フェンスの両端を表示しないかどうかのフラグ(remix-remix-fencenon-nilのとき有効) t non-nil 表示しない
nil 表示する
remix-fence-open フェンスの左側に使う文字列(remix-remix-fencenon-nilのとき有効) "|" 文字列 その文字列を使う
remix-fence-continue 連続して変換するときにフェンスの左側に使う文字列(remix-remix-fencenon-nilのとき有効) "+" 文字列 その文字列を使う
remix-fence-close フェンスの右側に使う文字列(remix-remix-fencenon-nilのとき有効) "|" 文字列 その文字列を使う
remix-fence-face フェンスの表示に使うface(its-fence-faceegg-conversoin-faceと同じ形式) 'underline face そのfaceを使う
remix-sysdict 入力が英単語かどうかを調べるためにシステムが使う辞書(参照のみ)のPATHのリスト (一行一単語形式のテキストファイルであればいい) '("/usr/dict/words") PATHのリスト 読み込めた辞書を参照する
nil システム辞書は使わない
remix-sysdict-length システム辞書から検索する単語の最小文字数 2 文字数 これより短い単語は辞書を引かない
remix-usrdict ユーザがローマ字と仮名を指示した単語を格納する辞書ファイルのPATH (expand-file-name "~/.remix-freq") PATH 既に存在すれば起動時に読み込む
nil ユーザ辞書は使わない
remix-usrdict-alist-file alist形式で保存するユーザ辞書ファイルのPATH。このファイルが存在すれば、remix-userdictで指定したファイルは参照しない (expand-file-name "~/.remix-freq.alist") PATH 既に存在すれば起動時に読み込む
remix-usrdict-alist-file-backup ユーザ辞書の保存時に古いものをバックアップするかどうかのフラグ nil non-nil バックアップする
nil バックアップしない
remix-usrdict-file-mode ユーザ辞書の保存時に設定するファイルモード nil 数値または8進数文字列 指定したモードに変更する
nil ファイルモードを変更しない
remix-auto-add-entry システム辞書の単語がユーザ辞書になかったときに自動的に追加するかどうかのフラグ t non-nil 追加する
nil 追加しない
remix-use-overlay フェンスのfaceをoverlayで表示するかどうかのフラグ 10 正の整数 overlayのpriority
nil text-propertyで表示
egg-mode-preference ローマ字→かな変換に使うモード t "egg"またはt 標準モード
"mlh"またはnil mlhモード
"remix" Egg ReMixモード
remix-egg-preinit-hook Tamagoの初期化前に呼ぶフック nil フック関数のリスト Tamagoの初期化前に実行
remix-setup-hook Egg ReMixの初期化時に呼ぶフック nil フック関数のリスト remix-setup内で実行

その他のローマ字かな変換ルールなどはTamagoのものと同じです。したがって、入力ルールを変更したい場合は、remix-egg-preinit-hookに登録する関数などでits-hira-mapのエントリを設定することになります。

入力操作

Egg ReMixでは、egg-mixと同様に入力モードのインジケータ(モードラインの「あ」の部分)を使って内部状態を表示します。

状態表示
表示 状態
待機状態(日本語入力on)
完全なローマ字綴り
状態が確定していない
ローマ字綴りではない
辞書でローマ字綴りになっている
辞書でローマ字綴りではなくなっている
フェンスを編集している
キーバインド
キー 機能
C-a フェンスの先頭へ移動する
C-b フェンス内で一文字分後退する
C-c 入力をキャンセルしてフェンスを消去する
C-d カーソル位置の文字を削除する
C-e フェンスの末尾へ移動する
C-f フェンス内で一文字分前進する
C-h Egg ReMixモードのキーバインドを表示する
C-k フェンス内のカーソル以降を消去する
C-m フェンスを変換せずに確定する。Egg ReMixの状態がローマ字綴りでなければ入力したキー列で確定する
C-r フェンスをローマ字綴りではないものとして確定する。Egg ReMixの状態がローマ字綴りであった場合はユーザ辞書にかなではないと登録する
C-t フェンスの末尾にカーソルがある場合は最後の二文字を入れ替える。フェンスの途中にカーソルがある場合はカーソル位置とその前の文字を入れ替える
C-w かなではないと辞書に登録されているローマ字綴りをフェンス内でかなに戻す。同時に辞書にかなであると登録する
M-h フェンスをひらがなで確定する
M-k フェンスをカタカナで確定する
M-> フェンス内の半角英数記号を全角にして確定する
[space] フェンスの状態がかなであれば変換モードに移行する。さもなければ入力したキー列で確定し、スペースを挿入する
[return] フェンスを変換せずに確定する。Egg ReMixの状態がローマ字綴りでなければ入力したキー列で確定する
[backspace] カーソルの手前の文字を削除する
[delete] カーソル位置の文字を削除する
[right] フェンス内で一文字分前進する
[left] フェンス内で一文字分後退する

リンク

Tamago Project
egg-mix

その他

ご意見、要望などは当然のことながら大歓迎です。

eggremix@extipl.jp