[Prev] [Up] [Next]

YC の部屋

まずは、免責から。
本プログラムの使用は自責で行って下さい。 作者は本プログラムの使用に伴う一切の問題に関して責任を負いかねます。

つぎに、お願い。
自分はローマ字入力かつANK-漢字変換モードでYCを使います。よって、YCを手直しした場合、まずは、ANK-漢字変換モードでのテストが中心となります。かな漢字変換モードやかな入力の人には申し訳有りませんが、つまり、かな漢字変換モードやかな入力のテストは後回し、下手をすると報告を頂いてからの対応となります。逆に言うと、問題を発見したら、どしどし、報告を頂きたいと思います。

4.0.0 から unix domain socket の cannaserver とも通信できるようにしました。

3.4.0 からかな入力対応しました。

注意0: 2.1.0 以降は YC をロードしたら (global-yc-mode 1) をしないと全バッファで ANK-漢字変換が有効にならない。フェンスモードは使用可能。
注意1: 4.0.0 から配布形態が .gz から .tar.gz になってるので気をつけてね
注意2: 5.0.0 から配布形態が .tar.gz から .gz に戻ったので気をつけてね


YC とは?

YC は Yet another Canna client を超省略したものです。だって頭文字をとると YACC になっちゃうんだもの(;_;)
YC は cannaserver と通信して ANK->漢字変換 または かな->漢字変換を emacs 上で実現するプログラムです。
inet domain socket をサポートしている cannaserver とは elisp だけで直接通信することが出来ます。unix domain socket をサポートする cannaserver とは 4.0.0 に含まれる icanna コマンドを経由して通信することが出来ます。 基本的に emacs lisp と外部コマンドで実装されているため emacs へのパッチは不要です。

EGG V4 があるのにこんなことやってるし、、、
追補:EGG V4+Tamago4でCANNAを使うのpatch+boiling-egg でcannaserver直通のANK-漢字変換が可能になります。

良い点

悪い点


動作確認済環境

以下に、YC の動作が確認されている環境条件を示します。

基本的に、emacs の version は 20 以上からの対応となります。一方、Canna の version は 3.2 からの対応となります。

開発は GNU emacs でやってるので xemacs ではまともに動かないかも知れない。


YC 起動準備

  1. yc をインストールする
    % tar zxvf yc-4.0.0.tar.gz
    % cd yc-4.0.0
    Makefile を適宜変更する
    % make
    % su
    # make install
    
  2. emacs に YC が load されるようにする
    具体的には $HOME/.emacs に、以下の行を追加する。
    (load "yc")
    (global-yc-mode 1) ; yc.el-2.1.0 からはこれを入れないと全バッファでいきなりANK-漢字変換が使えない。
                       ; 2.1.0未満のバージョンではエラーするので気を付けること。
    

YC の使い方

YC には以下の二つの使い方があります。

かな漢字変換モード

かな漢字変換モードは C-\ で切替えます。 かな漢字変換モードが有効な時に文字を入力すると入力した文字をローマ字として判断し対応するひらがなに逐次置き換えながら表示します。 変換するときは SPC / C-n / C-p を用います。 次の変換候補にするときには C-n / SPC / C-j、 前の変換候補にするときには C-p、 文節を伸ばすときは C-o、 文節を縮めるときは C-i を用います。
単語登録するときには変換中に C-t を入力するか、あるいは変換していない状態で region を設定しておいて M-x yc-touroku-region で単語登録します。

ANK漢字変換モード

ANK漢字変換モードは M-x yc-mode / M-x global-yc-mode で切替えます。 ANK漢字変換モードは buffer 中のローマ字をピックアップして漢字変換する事ができるモードだと思って頂ければよろしいかと思います。
# cannaserver と直接通信する boiled-egg。分かる人はこれで分かる。
buffer にローマ字を入力してから C-j で漢字変換します。漢字変換中はかな漢字変換モードと同じ操作になります。

ANK漢字変換モードの嬉しさ

ANK漢字変換モードは buffer 中のローマ字をピックアップして変換するモードなので、かな漢字変換モードにあったような ANK の入力とかな漢字の入力を切替えるための C-\ の連打が不要になります。
C-\ による入力モードの切替え操作が不要になるので、alphabetとかな漢字の混在した文章の入力が非常にスムーズに行うことができます。

ANK漢字変換モードには再変換機能があり、変換文字列を確定した直後に限り、C-j で再変換できます(かな漢字変換モードでもANK漢字変換モードが有効になっていれば再変換できます)。

また再変換とは別にひらがな文字列/カタカナ文字列を漢字変換することもできます。

ローマ字を buffer に入力して、C-j を入力すると漢字変換します。ローマ字をピックアップするルールは以下となります。

  1. カーソルからバッファの先頭方向へ検索する(region を越えない)
  2. 空白文字(SPC / TAB / RET)が出てくるまでか
  3. yc-stop-chars に指定した文字が出て来るまで
  4. 半角alphabet が続く間か
  5. 漢字を除く全角文字が続く間
何か繁雑ですが、『空白文字をまたがない同幅の文字が続く間』と覚えれば良いでしょう。
# yc-stop-chars には文字列操作時に空白扱いする文字が指定されていると思えば良いです。

実際にalphabetとかな漢字混じりの文章を入力するときは、alphabet とかな漢字にしようと思っている文字列の間に SPC を入力するようにするとスムーズに変換できます(alphabet とかな漢字の間にいちいち SPC が入るのが嫌な人は SPC の変わりに C-SPC でも構いません)。


キーバインド

Keybind
KeyGlobalFenceHenkanSelect
C-j漢字変換漢字変換次候補次候補
M-j字種変換


C-\Fence OnFence Off入力確定&Fence Off変換確定&Fence Off
C-m
確定確定選択
C-g
入力取消変換取消選択取消
SPC
漢字変換次候補次候補
C-o

伸長伸長
C-i

短縮短縮
C-t

登録登録
C-n
字種変換 次候補次候補次行候補
C-p
字種変換 前候補前候補前行候補
C-h
BS字種変換(あ)字種変換(あ)
C-l

字種変換(a)字種変換(a)
C-u

字種変換(a)字種変換(a)
C-k
fence終端まで削除字種変換(ア)字種変換(ア)
C-f
1文字進む次文節次候補
C-b
1文字戻る前候補前文節
C-e
fence終端へ最終文節行末候補
C-a
fence先頭へ先頭文節行頭文節
C-c C-j記号入力



YC の設定

yc-canna-lib-path
かんなの初期設定パス(default.cannaが格納されている)を設定する。 環境変数 CANNALIBDIR 参照
(setq yc-canna-lib-path "/usr/local/canna/lib/")
yc-canna-dic-path
かんなの辞書パス(canna.cbpやcanna.tが格納されている)を設定する
(setq yc-canna-dic-path "/usr/local/canna/lib/dic")
yc-select-count
一覧モードになる繰り返し数-1を指定する。デフォルトは3回。
(setq yc-select-count 2)
yc-rK-trans-key
変換キーを指定する。デフォルトは \C-j
(setq yc-rK-trans-key "\C-j")
yc-stop-chars
変換文字列を取り込む時に変換範囲に含めない文字列を指定する
(setq yc-stop-chars "(){}<>")
yc-server-host
かんなサーバホスト名を指定する。デフォルトは nil
(setq yc-server-host nil)
環境変数 CANNAHOST 参照
yc-use-color
変換中に色をつける。デフォルトは nil。
(setq yc-use-color t)
yc-use-fence
変換中に||をつける。デフォルトは t。
(setq yc-use-fence t)
yc-enable-hankaku
半角かなを字種変換候補として有効とする。デフォルトは t。
(setq yc-enable-hankaku t)
yc-icanna-path
cannaserver と UNIX domain socket経由で通信するための補助プログラム(icanna)のパスを設定する。
(setq yc-icanna-path "/usr/local/bin/icanna")
yc-connect-server-at-startup
yc load 時に cannaserver と接続するか設定する。デフォルトは t。
(setq yc-connect-server-at-startup t)

.emacs の例

yc.el-2.1.0 以前:

(load "yc")
(global-set-key "\M-\ " 'yc-mode)

yc.el-2.1.0 以降:

(load "yc") ; これでフェンスモードは使用可能
(global-yc-mode) ; 全バッファで ANK-漢字変換を有効にする
(setq yc-use-color t)
(setq yc-use-fence (not (eq window-system 'x)))
(global-set-key "\M-\ " 'yc-mode)

環境変数

CANNAHOST
cannaserver の動いているホストを指定する
CANNALIBDIR
default.canna のあるディレクトリを指定する

YCのTIPS

と言いつつ、ほとんどANK漢字変換モードのTIPS。

何はともあれ C-j
漢字変換をしたかったら C-j 。これだけは覚えよう。 後は、おなじみの emacs のカーソル移動コマンド体系で 何とかなる
インクリメンタルサーチ中でも C-j
インクリメンタルサーチ中に日本語が入れたくなったらどうするか。 やっぱり C-j で変換できる
C-j を連打したら一覧モードになって欲しい?
C-j を連打して一覧モードになって欲しい人となって欲しくない人が いると思う。どちらかと言うと自分は、後者になる。 そんなわけでデフォルトは C-j 連打で一覧モードにはならないように しちゃったが、これは簡単に変更できる。
(define-key yc-fence-mode-map "\C-j" 'yc-modeless-next)
を (load "yc") の後に入れてくれれば解決するはずだ
C-j を一時無効にする方法
C-j (newline-and-indent) を使ったり、変換キーとして使いたい人は M-x yc-mode で ANK漢字変換モードをトグルすれば良い
C-j を違うキーにする方法
C-j (newline-and-indent) が潰れるのが嫌な人は YC をロードする前に
(setq yc-rK-trans-key [?\C-\;])
とやれば C-; に C-j の機能が割付く(Emacs on X な人向けだなぁ)
106 キーボードを使っている人は変換キー(SPCのとなりにあるキー)に割り付けるといいんじゃないかな?でも説明するのが面倒なので説明しない。ヒントは xmodmap (と xev)
C-\ で fence-mode になるようにした
いわゆる FEP のモード。C-o が良い人は
(global-set-key "\C-o" 'toggle-input-method)
をする事。
C-c C-j で手抜きな記号モード
C-c C-j で手抜きな記号モードになる。CANNA と違ってフェンスに居ながらにして記号モードになるわけではない。まぁ、あくまでも手抜きなモードだから(^^;
かな漢字変換モードで全角スペース
かな漢字変換モードで @@ で全角スペース入るんだけどねぇ(^^;
かな漢字変換モードが有効になっている状態でかつ変換文字列が未入力状態で SPC を押したら全角スペースが入るようにする方法。~/.emacs に以下を追加する。YC をロードした直後が良いかな
(defun yc-zenkaku-space ()
  (interactive)
  (insert (char-to-string 53409)))
(define-key yc-input-mode-map (char-to-string 32) 'yc-zenkaku-space)


既知のバグ


更新履歴

10/10/01: 5.2.1: MD5=587f9a77f1061bbf1d8e8950f338878e
yc-close関数の(set-process-sentinel yc-server nil)をコメントインすると5.2.0のkill-emacs時の問題が出ないと中尾@YCユーザさんに教えてもらったので採用(中尾@YCユーザさん。ありがとうございます。)
10/09/29: 5.2.0: MD5=357c75005f9a2f70fe69611adb0ce6ac
ひさかたぶりの更新。知らぬ間に emacs が 23 に上がって、漢字変換時に文字化けするようになってたのね。Windows メインで emacs から遠のいていたので気づかなかったけど、YC を使ってもらっている人には、ずいぶん、迷惑をお掛けした次第。
Debian Project の矢吹さん経由でオオノさんという方から頂いたパッチを採用させてもらって emacs23 でも文字化けせずに変換できるようにさせてもらった(矢吹さん、オオノさん ありがとうございます)。
頂いたパッチをあてると emacs22 系で文字化けするようになったので、その対策も一応いれておいた。
emacs23 系で 1 度でも cannaserver に接続してから kill-emacs すると "yc disconnected cannaserver" とメッセージが出る問題があるけど、実運用上はあまり影響が無さげなので、とりあえずリリースします。
08/02/13: 5.0.0: MD5=46e30679981c4daeefc8bae688728820
足掛け4年ぶりの更新。知らぬ間にemacsがUNIXドメインソケットを使えるようになったので対応してみる。コード中には昔のicannaの呼出ロジックも残っているが make-network-process を持った emacs-22 以上の emacsen なら、そちらを使うので取り敢えず el 単体で配布してみる。
04/07/14: 4.0.13: MD5=5cc5f04346b806d4157b4b66d7eba69f
yc load 時に input-method が japanese-yc にならない問題の対処。emacs 起動時 に yc を load して emacs の splash が壊れる人は yc-connect-server-at-startup に nil を指定すること (太田@NEC さん ご指摘ありがとうございます)
fence-mode で字種変換した後に文字を入力し始めると平仮名に字種変換した文字列が平仮名に戻ってしまう問題の対処 (中尾さん ご指摘ありがとうございます)
04/07/12: 4.0.12: MD5=c93f36c96f8cad91b3a62a06d5cb62bd
以下の問題の対処 (相田さん パッチありがとうございます)
04/06/21: 4.0.11: MD5=807849ddf73a99fe97ca0628e3d1b796
select-mode の [up],[down] のキーバインドを "\C-p","\C-n" に合わせる(余野さん ご指摘ありがとうございます)
04/06/06: 4.0.10: MD5=db439964393b4324d975f0e4344cfbf4
かな漢字変換モードで "kanji" を入力後、C-n で片仮名に変換すると "カnジ" になってしまうので、"カンジ" になるように修正する。(水戸さん パッチありがとうございます)
04/04/20: 4.0.9: MD5=2682bdeb44e8164d00e33156907612bf
NetBSD でも make できるようにする(pocket pet さん パッチありがとうございます)

04/03/05: 4.0.8: MD5=067fa53a65409478a01ccff67d9b9fb8
漢字変換確定直後に操作した場合に画面が崩れる場合がある事への対処として漢字変換確定時に描画をflushする(渡辺さん ご報告ありがとうございます)

04/02/20: 4.0.7: MD5= 9e6365f8126f005a53cd821d07a68b56
フェンスモードでローマ字入力する場合に"っ"、"ん"の処理がおかしくなっていた問題の対処(中尾さん、かずひこさんご報告ありがとうございます)

04/02/05: 4.0.6: MD5= 29d43d9e3a31d56b789926e1f8f52452
花配列を使用している場合の濁点、半濁点の扱いを修正

04/01/04: 4.0.5: MD5= 038b72b629a867cac6568712de5ed965
group名を決める際にチェックするsystem-typeの値としてwindows-ntを追加 (森山さん 御指摘ありがとうございます)

03/12/25: 4.0.4: MD5= 6ff5aa270dd6f944bf9afb675eaa6b72
花配列対応。複数文字で半濁点となる key sequence の問題対応

03/12/03: 4.0.3: MD5= 9d357543a6e205ad0b835a28186e3ba8
group名の取得処理にて条件判断を誤ってgroup名の取得に成功した場合にも次の手段を試み、結局、固定値 "user" を返していた。条件判断を修正(win の時は無条件で "user" それ以外の場合は id -> perl -> "user" の成功順に変更)

03/12/03: 4.0.3: MD5= 9d357543a6e205ad0b835a28186e3ba8
group名の取得処理時に perl を起動した場合に perl が locale 関係で warning しないように 環境変数 LC_ALL=C で perl を起動するようにする。(倉田さん ご指摘ありがとうございます)

03/11/26: 4.0.2: MD5= 252af30acac7b89a2cb26e70f6ab430b
~/.canna で指定するファイルの記述としてファイル名のみと絶対パスの指定を可能にする。(たかのさん ご指摘ありがとうございます)

03/11/09: 4.0.1: MD5= e63c37a2692d77d132f9f8765f9a53a2
icanna のパスを設定できるようにする。(Debian プロジェクトの上川さん パッチありがとうございます)

03/10/06: 4.0.0: MD5= 5a53ebb944c19685fe3c8612411b6307
unix domain socket のみサポートしている cannaserver とも通信可能とする。

03/06/02: 3.5.8: MD5= 94c4484b2a1e13d3e3a2d57dbdc7c19f
かな入力で字種変換した場合に入力したひらがなの順序が入れ替わってしまう問題の対処(yc-generate-romaji-list が長さ0の文字列を生成していた問題)。(たかはしさん ご指摘ありがとうございます)

03/05/11: 3.5.7: MD5= 6c5f0e42698f0c54b08c76b8bbc28370
onX で複数フレームで minibuffer へ一覧表示を行うときに表示されるフレームと表示されないフレームがあった問題の対処

03/05/10: 3.5.6: MD5= 970aa1a777000e9eaa4f0828b067fef4
emasc-20.7 -nw で cursor という face が無いためにエラーする問題の対処(石井さん ご指摘ありがとうございます)

03/05/07: 3.5.5: MD5= ad2c18a7264ebbeb203a13c345e1236b
background-mode が dark の時も fence-mode の色が暗かった問題の対処。defface してみる。(Debian Projectの 上川さん ご指摘ありがとうございます)

03/05/07: 3.5.5: MD5= ad2c18a7264ebbeb203a13c345e1236b
xemacs-21.4 において一覧モードにするときに使っていた関数を set-minibuffer-window から active-minibuffer-window に変更。

03/05/07: 3.5.5: MD5= ad2c18a7264ebbeb203a13c345e1236b
customize にちょっと対応してみた。 M-x customize-group yc で設定可能

03/04/28: 3.5.4: MD5= 11b307365979db336f7dc9189d2b19ca
set-face-hilight-p の typo を set-face-highlight-p に修正(堀田さん ご指摘ありがとうございます)

03/04/26: 3.5.3: MD5= 650e82bc5fc07aae3e27d389733f74b6
yc-fence-face と yc-current-face の設定部分がバグってたので修正(堀田さん ご指摘ありがとうございます)

03/04/26: 3.5.3: MD5= 650e82bc5fc07aae3e27d389733f74b6
xemacs-21.5.x の frame-property で色をとってくると色の名前ではなく、color-instance を返却するため、make-face が失敗していたと思われる対処???(堀田さん ご指摘ありがとうございます)

03/03/28: 3.5.2: MD5= 7c8fd5d4c4d19f727bada3bd640daddf
yc-fence-face と yc-current-face のカスタマイズを上書きするbugがあったので修正(大原さんご指摘ありがとうございます)

03/03/24: 3.5.1: MD5= 52bb46bfddb083ecc98cdbf0e2f281b7
長音記号「ー」を半角カナに変換可能とする。yc-fence-face と yc-current-face で変換中の face を設定できるようにする。(大原さんご指摘ありがとうございます)

02/11/09: 3.5.0: MD5= 005349434105cc06dc6cb930bb7fa9c3
変数yc-enable-hankakuをnilにすることにより半角かなを字種変換候補として無効とする。非nilの場合は半角かなを字種変換候補に含める。

02/10/26: 3.4.13: MD5= 16ab6399b6dbf34d7e9bb73ec3d2f234
かな入力時に debug 用のメッセージが minibuffer に出力していた部分を停止(上川@Debian Project さん パッチありがとうございます)

02/10/12: 3.4.12: MD5= c13db509c2d8b870ee683cb57828df9b
emacs-21.2 において minibuffer付きの multi frame 状態で変換中に minibuffer への表示がうまく行かない frame がある問題の対処。minibuffer に表示を始めるときに、(set-minibuffer-window (minibuffer-window)) する

02/10/10: 3.4.11: MD5= eed5f3edf4e933ebc2c20f7bb49dad47
fence-mode で入力中に defsymbol している文字列を入力するとエラーになる可能性があった問題の対処(上川@Debian Project さん ご指摘ありがとうございます)

02/10/09: 3.4.10: MD5= 3595e0bd9a0aa05061c0d7b51dfaebb2
yc-subsequence で要素数が足りないときに失敗する問題の対処。(上川@Debian Projectさん ご指摘ありがとうございます)

02/08/25: 3.4.9: MD5= 3123d9c1247bb073de68e7d2e762908b
fence-modeでローマ字入力するときに複数文字となる音節(例えば、"kyo")を入力するとyc-generate-romaji-list が正しく処理できなかった問題の対処

02/08/23: 3.4.8: MD5= 87a829e78f54d225ab79c39cceda68dd
かな入力で入力した文字列の字種変換がおかしかった問題の対処。(藤本さん ご指摘ありがとうございます)

02/06/27: 3.4.7: MD5= 36cf52c47a5b89d3896b92296ee406d2
fence-mode で入力時 .canna で defsymbol している記号が漢字変換時の候補として出て来ない問題の対処。(中尾@yc.el user さん ご指摘ありがとうございます)

02/06/27: 3.4.7: MD5= 36cf52c47a5b89d3896b92296ee406d2
emacs-21.2 on X で minor-mode-menu のトグル操作に対応した。

02/04/18: 3.4.6: MD5= 9f1133b0bd94d2bf92037522e92bb1e1
促音含みの字種変換がおかしかった対処。かな入力時の動作は不明(籠宮隆之さん ご指摘ありがとうございます)

02/04/17: 3.4.5: MD5= babf8ef10250706e819f4d15769fb325
fence モードで "n" を "ん" に置換せずに変換処理に流れていたのを修正(中尾さん ご指摘ありがとうございます)

02/04/13: 3.4.4: MD5= 14250dbe15e1bf50f301a49f9b4e519e
fence モードで入力中に C-p で alphabet → alphabet → 半角カタカナ → カタカナ → ひらがな の順序で、C-n で逆順に字種変換するようにした
字種変換時の C-n / C-p が Canna と真逆の対処

02/04/10: 3.4.3: MD5= b1befa650a3a756aa9079b83fc04706d
半角カナ追加に伴い変換中の C-h / C-k / C-l / C-u が、それぞれ ひらがな / カタカナ / alphabet / alphabet に割付くように調整。かつ、記号を変換したときに字種変換リストを生成できない問題があったので、この問題の対処。あと、前述した C-k のように半角カナを出すキーはどうしようかな?とりあえずは未割り付け。
fence-mode から字種変換時に C-n / C-p が真逆になっているのは認識したけど、対処は時間がかかりそう

02/04/09: 3.4.2: MD5= 125d0b7285903e05c7ecdf3a3449076e
字種変換リストに半角カナも出るようになった(Takayuki Nakao 作。 中尾さんありがとうございます)

02/02/24: 3.4.1: MD5= 3e17eb845277088464e625e152eed1d4
yc-use-color 時で blink-cursor-mode が有効、または、 cursor-type を変更している場合に、fence mode で blink や cursor-type 変更を無効にするようにする。xemacs は未確認。

02/02/24: 3.4.0: MD5= 89bfb48a40ffbe8b505eeee223e795fa
canna の初期化ファイルを default.canna -> ~/.canna と読んでいたが、~/.canna があった場合には default.canna を読まないようにした。この変更で「かな入力」の人は ~/.canna に (setq romkana-table "kana.cbp") と書くだけで「かな入力」できるようになる。

02/02/24: 3.4.0: MD5= 89bfb48a40ffbe8b505eeee223e795fa
かな入力で yc-conv-rH-list が null 文字列を生成する場合があったので、かな入力で fence 入力中に yc-edit-backward-delete-char を 2 回入力しないと文字が消せなかった問題の対処。

02/02/24: 3.4.0: MD5= 89bfb48a40ffbe8b505eeee223e795fa
かな入力で字種変換したときにローマ字が無茶苦茶になるので、ひらがなからローマ字を生成するようにする。

02/01/12: 3.3.5:
yc-canna-lib-path の設定で /usr/pkg/share/canna も見るようにする

01/12/29: 3.3.4: MD5= 707cbfd7ff4cfd327604e5c0e8a3b5dc
ローマ字-仮名変換テーブルの処理の変更と、途中で cannaserver が落ちてしまった時にちゃんと終了しなかった問題の対処(まつもと ゆきひろ さん パッチありがとうございます)

01/09/22: 3.3.3: MD5= 5cde3a46953a408bef605c95f68a6daa
MS-Windows 上でも yc-use-color の設定を有効とする(近藤さん ご指摘ありがとうございます)

01/09/14: 3.3.2: MD5= 2f66954de63373006bf39ff4923e61d7
Win2000+cygwin+emacs-21.0.105 で canna との接続が失敗する問題の対処。Win2000+cygwin の id -gn がひら仮名のグループ名を返却するため、cannaプロトコルの notice-group-name が失敗する。

01/09/14: 3.3.2: MD5= 2f66954de63373006bf39ff4923e61d7
yc.el ファイルの漢字コードが EUC-JP になっていたのを iso-2022-jp に変更。(かずひこ@電子辞書/書体オープンラボなど さん ご指摘ありがとうございました)

01/05/30: 3.3.1: MD5= e85f886d71d92548d278f4190ba2da78
yc-colorize が 2 個あったので一つにする(石井さん ご指摘ありがとうございます)。ひらがな編集中に fence 外に文字飾りがはみ出すことがあった問題を修正。

01/05/28: 3.3.0: MD5= 0f246e40e806265f54890d16cbbdef8b
fenceの飾り(||)を表示する/しないを設定できるようにする。設定方法はyc-use-fenceを参照。yc-use-color で onX で使っていた人は、(setq yc-use-fence (not (eq window-system 'x))) してくれれば、以前と同じになる、と思う。

01/05/23: 3.2.8: MD5= 0474d0ea518256a105a02414736672d5
on X で < Meta>+< j> でbugる問題の対処(山田栄成さん ご指摘ありがとうございます)。その他、Emacs21.0.x on KTerm で yc-usr-color を t にしたときに fence をつけないようにしてみた。見にくい人は (setq yc-use-color (if (eq window-system 'x) t nil)) して下さい。

01/04/23: 3.2.7: MD5= aa8a1a617e5b94eaf86ab5f11f37bcd5
ANK-字種変換をつけてみる \M-j で ANK-ひらがな-カタカナ-ALPHABET-ANK と変換する

01/03/06: 3.2.6: MD5= 4894985f42f0f974c28de01fb7865692
.canna の評価処理の改善(谷さんありがとうございます)

01/01/17: 3.2.5: MD5= af4d2cf447c9a1ffc3d887c61b2d04bb
辞書リストの初期値を固定値にした

01/01/16: 3.2.4: MD5 = 576849ef8cd4186d66e5afd374e7b731
default.canna および .canna が存在しない場合に辞書リストの初期化洩れを対処。(くりおかさん ご指摘ありがとうございます)

00/12/25: 3.2.3: MD5 = 8c7feee140f9ea31e76fc763ea0f97fc
3.2.2 の対応方法だと emacs-20.x の起動画面が壊れるので、(yc-server-check) は cannaserver とのコネクションを張りっぱぁにして、速攻で初期化するようにする。

00/12/16: 3.2.2: MD5 = ed4a47e88f16a1b4717ecdd590843f08
(load "yc") 後、(yc-mode 1) あるいは、(global-yc-mode 1) あるいは、C-\ をするまでの間に、/usr/local/canna/bin/cannastat を動かすと cannaserver が死んでしまう問題の対処。(なべやさん ご指摘ありがとうございます)

00/12/09: 3.2.1: MD5 = 7f47fc1f8f80dcbb3f5910d0e384ff02
X 上で無くても yc-usr-color が有効になるようにする。

00/12/08: 3.2.0: MD5 = b7ec9bf39e1a8cca30d85d2617719fbe
yc-use-color が 非nil の時に xemacs は extent を emacs は overlay を使うようにした。emacs が overlay を使うのは従来通り。

00/12/06: 3.1.11: MD5 = fb8a4bb4460b743d939df2873db11678
overlay を格納する変数を make-variable-buffer-local するつもりが make-local-variable していた。修正済。(かずひこ@電子{辞書,書体}オープンラボなど さん ご指摘ありがとうございます)

00/12/06: 3.1.11: MD5 = fb8a4bb4460b743d939df2873db11678
xemacs で C-x C-c をしたときに、何故か condition-case で signal を拾ってくれないので、set-process-sentinel を nil にするようにした。

00/12/04: 3.1.10: MD5 = e8412a4ba9898146f88c84df8fd65ee1
emacs-21.0.90 を on X で 使っていると minibuffer に複数行表示できるようになったみたいなんだけど、候補を複数行表示したときに minibuffer を抜けても、minibuffer が元の大きさに戻らないので、message 出力をして、minibuffer の大きさを戻すようにした。

00/11/21: 3.1.9: MD5 = f4bee52bc8dd38f709e9fc1501df7c90
emacs-21.0.90対応。(require 'viper)を止める。

00/11/18: 3.1.8: MD5 = f601227594f2bcfcec280278475e18e9
xemacs でバイトコンパイルしたyc.elc を使ってカラー対応を有効にすると、frame-parameter が無いと言われる問題の対処。(かずひこ@電子{辞書,書体}オープンラボなど さん ご指摘ありがとうございます)

00/11/18: 3.1.8: MD5 = f601227594f2bcfcec280278475e18e9
xemacs で global-yc-mode が効かないようにみえる問題の対処。(かずひこ@電子{辞書,書体}オープンラボなど さん ご指摘ありがとうございます)

00/11/17: 3.1.7: MD5 = 839a8e355e00109e326f6ad0761437a9
xemacs でも色が付くようにした。ただし、fsf-compat pkg が install されている場合に限るけど。

00/11/17: 3.1.7: MD5 = 839a8e355e00109e326f6ad0761437a9
.canna を評価するときに XEmacs で文字を認識できなかった問題を対処(かずひこ@電子{辞書,書体}オープンラボなど さん ご指摘ありがとうございます)

00/11/14: 3.1.6: MD5 = f88a02ebc9b568bab3e984a1511b93c5
バイトコンパイルしたときに yc-put-symbol で エラー "Symbol's value as variable is void: res" が発生し、C-g を入れないと戻れなくなる問題の対処。ついでに、res / args / str の名前を yc-res / yc-args / yc-str に変更した。(石井さん ご指摘ありがとうございます)

00/11/09: 3.1.5: MD5 = 9901d581638dfb92e7b2849e985171ed
user辞書をbushu辞書と誤設定していた。対処済。いやはや、何ともお恥ずかしい話で面目無い。

00/10/22: 3.1.4: MD5 = 8e5af52dbee77fd03ecf42a06a35878e
signal と error-message-string の使い方を変更。と言うか、cannaserver とのコネクションが切れたときのエラーメッセージの出方を変更した。

00/10/20: 3.1.3: MD5 = 8041d87a955d4e04f1e02d6e964852f3
cannaserver との接続が切れたときの対策を強化。cannaserver との接続が切れたらエラーしていたところもエラーせずに処理するようにした。これで cannaserver が死んでいても fence でひらがなを入力することはできるし、cannaserver と接続し直せれば再びかな漢字に変換も可能となる。ただし、emacs 起動時に cannaserver とつながらないと yc-mode および global-yc-mode と M-x set-input-method japanese-yc に自動的にならないので、注意すること。

00/10/18: 3.1.2: MD5 = 47bcdfef99786696b39d2474be0f9dfa
変換中の各文節の読みをキャッシュする。多少は速くなったと思う。

00/10/17: 3.1.1: MD5 = 9b4c19e8a7c9b6017701dc4dfcba795b
字種変換がおかしくなっているはずなので yc-reset-alphabet の yc-yomi を yc-get-yomi に戻す

00/10/17: 3.1.0: MD5 = 23ffc43017283bb2439eda4acc5a8cf1
再変換時 C-g 後に C-j で再変換するようにしてみた。

00/10/17: 3.0.1: MD5 = 41f7bcb17dfe0231680c2f6ae777e189
記号モードで SPC で次候補 C-q で記号モードを抜けずに記号挿入を追加

00/10/17: 3.0.1: MD5 = 41f7bcb17dfe0231680c2f6ae777e189
文節長を変更したときに読みが変わらなかった問題を対処

00/10/14: 3.0.0: MD5 = d972825628a54789608ff82a5e78e60a
手抜きな記号入力モードを付けてみる。C-c yc-rK-trans-key (Default なら C-c C-j) で手抜きな記号入力モードに入る。
# 記号モードと言うよりは、全角文字全てをコード順に並べただけのモードだけど

00/10/12: 2.3.3: MD5 = ba3f0b9293236a37e0e8c17c7031b9a3
.canna の \C-\ を emacs の \C-\\ と認識するように修正した

00/10/11: 2.3.2: MD5 = 22fe04f30c9048074b97e7e484804410
defsymbol で定義した文字は候補選択時に defsymbol した候補のみ表示するようにした

00/10/09: 2.3.1: MD5 = 23fdd3306c78bac73ff17cb3fb21523a
yc-server-check で cannaserver との接続を切らないようにした

00/10/09: 2.3.1: MD5 = 23fdd3306c78bac73ff17cb3fb21523a
2.2.0 の修正で yc-kakutei が遅くなってたので字種変換結果を変換時に記録するように変更した

00/10/05: 2.3.0: MD5 = ec1220b37e4726ab1430ca4bd7bf702d
.canna や default.canna の読み込みを多少まともにした。 canna 設定ファイルのキーワード quote setq set equal = > < progn eq cond null not and or + - * / % gc load list cons car cdr atom let if boundp fboundp getenv concat に対応した。 動作が異なるかも知れないけど

00/09/30: 2.2.0: MD5 = 1f1618af7955cff53c91c4668db86be3
defsymbol の設定が有効になるようにする

00/09/20: 2.1.7: MD5 = 94fe46ba2fba65c3028fb7d9fdf2a037
cannaserver との接続確認に ping を使うのを止めて with-timeout に変更(谷さん、石井さん ご指摘ありがとうございます)

00/09/14: 2.1.6: MD5 = f0aca7640223977c054d2815f674d7ff
yc-ping-option を system-configuration の値に応じて自動設定するようにした。

00/09/12: 2.1.5: MD5 = 9fa55a8d04c3a242ed823acdfc9e97bd
yc-ping を ping の終了を 1 秒間だけ待つようにした。ping が 1 秒間で終了しなかった場合には、強制的に刈り取る。(だけど、異常終了するか、しないかは実装依存なんだろうな…)(谷さん ご指摘ありがとうございます)

00/09/07: 2.1.4: MD5 = 2ba3206385031aa25214ab6743f484aa
yc-ping-option 暫定で追加(谷さん ご指摘ありがとうございます)

00/09/01: 2.1.3: MD5 = ddfa77a8acc8db810d7b112cbf2fb301
環境変数名を CANNA_LIB_DIR は止めて CANNALIBDIR のみにする(谷さん ご指摘ありがとうございます)

00/09/01: 2.1.3: MD5 = ddfa77a8acc8db810d7b112cbf2fb301
yc ロード時に cannaserver とつながらなかったら input-method の設定変更をやらないようにした(谷さん ご指摘ありがとうございます)

00/09/01: 2.1.3: MD5 = ddfa77a8acc8db810d7b112cbf2fb301
cannaserver とつながらなかったら global-yc-mode または yc-mode または yc-input-mode にならないようにした(谷さん ご指摘ありがとうございます)

00/08/24: 2.1.2: MD5 = f2e4b642929e72170446381c05f20c12
環境変数CANNA_LIB_DIR が無くて yc-canna-lib-path の設定もないとエラー発生。対処済。(谷さん ご指摘ありがとうございます)

00/08/23: 2.1.1: MD5 = c831ef28dbd883abdf5d37d67c2a5551
yc-canna-lib-path が nil になっても動くようにした。(谷さん ご指摘ありがとうございます)

00/08/23: 2.1.1: MD5 = c831ef28dbd883abdf5d37d67c2a5551
環境変数CANNA_LIB_DIR を yc-canna-lib-path の値に引き継ぐようにした。CANNA_LIB_DIR が空文字列でも有効になるので要注意。(谷さん ご指摘ありがとうございます)

00/06/29: 2.1.0: MD5 = 26afe5c0dac05cfc8a4ae96fedc0f0b3
大改造。コードの縮小化。global-yc-mode の追加と yc-toggle-level の削除。

00/05/17: 2.0.15: MD5 = 481cc0a0533e2b5118579357e54a1357
終了処理まわりを kill-emacs でやるようにした。シンプルにはなったけど見た目は…(矢木さん ご指摘ありがとうございます)

00/05/16: 2.0.14: MD5 = 5a28dc4c715b789d0462b426a9212acb
yc-forward-bunsetsu で yc-yomi-hiranaga になっていた箇所を yc-yomi-hiragana に修正

00/05/16: 2.0.14: MD5 = 5a28dc4c715b789d0462b426a9212acb
byte compile 時の viper 関連の warning 対策(byte-compile-depth 見て良いのか?)

00/05/16: 2.0.14: MD5 = 5a28dc4c715b789d0462b426a9212acb
終了時処理の変更。save-buffers-kill-emacs の書き換えを止めて defadvice する(もしくは pre-command-hook / post-command-hook で処理を追加)

00/05/13: 2.0.13: MD5 = 4a8005c7fa6a919688ccea42ce91a6ec
yc-defword-cancel で delete-overlay している問題を対処

00/05/13: 2.0.13: MD5 = 4a8005c7fa6a919688ccea42ce91a6ec
save-buffers-kill-emacs で終了しなかったときに yc を再初期化するようにした(矢木さん ご指摘ありがとうございます)

00/05/12: 2.0.12: MD5 = 4eca3735ca0b63a6ec61aa4c5ab9a5a1
(not yc-use-color) の時に yc-defword で delete-overlay している問題を対処(矢木さん ご指摘ありがとうございます)

00/05/12: 2.0.12: MD5 = 4eca3735ca0b63a6ec61aa4c5ab9a5a1
id / perl が無いときに call-process の失敗を捕捉していない問題を対処(矢木さん ご指摘ありがとうございます)

00/05/12: 2.0.12: MD5 = 4eca3735ca0b63a6ec61aa4c5ab9a5a1
id / perl の返却値を真偽値として判定している問題を対処(矢木さん ご指摘ありがとうございます)

00/03/13: 2.0.11: MD5 = 37b38d3b7beec30ad619bd4ec87fd26b
『う゛』を変換したときに全角『゛』が半角『゛』になる問題を対処

00/03/12: 2.0.10: MD5 = 8d6112925efc746e5adb55f8dc90980b
ひら仮名入力中に C-n または C-p で字種変換するようにした。ただし、YC における字種変換は漢字変換に含まれるため、間接的に漢字変換することになる。

00/03/12: 2.0.9: MD5 = 4f0693ed9da98d7eecaa391c8582f6f4
ローマ字変換時に一文節目でローマ字-ひら仮名変換テーブルに無い文字が含まれていた場合に yc-alphabet-internal で失敗する問題の対処

00/03/12: 2.0.8: MD5 = bc840bdedf5373dcffc8f4c9cabfb63c
cannaserver が死んだときに、yc から抜けなくなる(yc が cannaserver の応答を待ち続ける)問題を対処(村上さん ご指摘ありがとうございます)

00/03/10: 2.0.7: MD5 = e8cd7cf0598db87924a4137f30fae368
変換時に色がつくようにした

00/03/09: 2.0.5: MD5 = 386da9bb4ce3d932c700004fca3fc764
変換中の文節が入力したローマ字で表現できない状態に分断された文節が大量にある(vi を 360個入力、変換した)場合に、処理時間がかかっていたのを対処。(村上さん ご指摘ありがとうございます)

00/03/08: 2.0.4: MD5 = bf786d2cf0acd00f2cc78705c034f52b
一覧表示中に C-i で文節縮めにならなかったのを対処(村上さん ご指摘ありがとうございます)

00/03/08: 2.0.4: MD5 = bf786d2cf0acd00f2cc78705c034f52b
『う゛』のカタカナとして『ヴ』が出るようにした(石井@ソニーさん ご指摘ありがとうございます)

00/03/04: 2.0.3: MD5 = b3c942e8651ef6bf930f9c236623c162
xemacs の isearch mode 時に変換を確定すると isearch-nonincremental-exit-minibuffer するようにした。個人的には納得できんけど、無理に納得することにした。

00/03/03: 2.0.2: MD5 = ac58f3f2ec126ffd761420f79431b751
fence モードで変換をかけて再入力を始めたときに確定をしていなかった問題を対処(村田@牧丘さん ご指摘ありがとうございます)

00/03/02: 2.0.1: MD5 = 2ebfdd14870cfdcc541335e2658f2f49
canna のライブラリーパスに /var/lib/canna を追加した(村田@牧丘さん ご指摘ありがとうございます)

00/02/29: 2.0.0: MD5 = 1a53dc2061de0c2f0c0422d82b20f752
cl を使わないようにした。

00/02/29: 2.0.0: MD5 = 1a53dc2061de0c2f0c0422d82b20f752
viper で minibuffer を使っているときに確定で minibuffer を抜けてしまう問題を対処

00/02/18: 1.99.13: MD5 = c7511d7b4170acc19156bfb9a16fefde
canna の設定 stay-after-validate に対応(石井@ソニーさん ご指摘ありがとうございます)

00/02/16: 1.99.12: MD5 = 27a48375af8fea5cfdec3768a80f7eb4
ローマ字かなテーブルの読み込みで、 suffix が .kp のファイルの読み込み時漢字コードを euc にしていなかったのを修正(石井@ソニーさん ご指摘ありがとうございます)

00/02/15: 1.99.11: MD5 = a251baea06bfda1bdcda8e6333c77b41
boil で変換した後に undo を実行した場合に undo を 2 回入力しないとローマ字に戻らなくなっていたのを修正

00/02/11: 1.99.10: MD5 = 6635c0de3c48a0a24489ea494b3c9629
file-exists-p や file-readable-p に nil を渡すと待っちゃうみたいなんで nil を渡さないように修正(村田@牧丘さん ご指摘ありがとうございます)

00/02/11: 1.99.10: MD5 = 6635c0de3c48a0a24489ea494b3c9629
user辞書の作成を勝手にやるようにした
これでユーザが手でmkdicする必要はない(村田@牧丘さん ご指摘ありがとうございます)

00/02/10: 1.99.8: MD5 = 74b23e0e5ca6441a57e1ace9e1faca66
default.canna と .canna の読み込み処理で default.canna の設定に .canna の設定が append してしまうのを overwrite するようにした(石井@ソニーさん ご指摘ありがとうございます)

00/02/03: 1.99.7: MD5 = 71b6be8976feb546159c73e591069975
fence-mode の入力関数が xemacs で入力文字をとりこぼすことがあるのを修正した。

00/02/01: 1.99.5: MD5 = df8f2c855f8dfef535f0f3f77ac59958
ローマ字変換テーブルに無い文字列以降のローマ字変換が出来ない時の検索打ち切り処理を追加した。(石井@ソニーさん ご指摘ありがとうございます)

00/01/31: 1.99.3: MD5 = 6b199c95ea79100a081cfd65c3b7a8e5
ローマ字かな変換テーブルの検索順序の対応がいつの間にか抜けていたので再追加した。

00/01/31: 1.99.3: MD5 = 6b199c95ea79100a081cfd65c3b7a8e5
xemacs 20.4 で redirect-frame-focus が無いため、minibuffer にカーソルをもって行く処理が全滅していることが判明。対処済

00/01/31: 1.99.3: MD5 = 6b199c95ea79100a081cfd65c3b7a8e5
XEmacs 20.4 への対応。少なくとも起動できるようにはしたし、fence-mode も使えるようにした。

00/01/31: 1.99.1: MD5 = 578bc50dd6e31f5ec4e77b5645e8a3d0
変換した文字列が長くて、文節数が膨大になった場合に凍り付く現象を確認。対処済

00/01/30: 1.99.0: MD5 = 152dc0461b5eaf30d643f17e6a7b3729
いわゆる fence-mode をつけた

99/12/01: 1.0.4: MD5 = e229c9f522918a8cdc1231e00066cc59
ローマ字かな変換テーブルの検索順序を
カレント -> ホーム -> $(CANNALIBDIR)/dic
の順序になるようにする(三重大の本田さん パッチありがとうございます)

99/11/01:
インクリメンタルサーチ中で確定したら、すぐにインクリメンタルサーチが再開するようにした

99/10/14:
minibuffer で変換を開始した場合に一覧モードがうまく動かない。一応、一覧モードにならないようにはしたけど、細かい所でおかしいかも知れない。けど対処済

99/10/13:
インクリメンタルサーチ中にも使えるようにしてみた。ピーピーうるさいけど

99/10/12:
minibuffer を別フレームにしている時の対処方法を変更

99/10/08:
"う゛"を一文字として扱うようにした

99/10/08:
yc のトグル範囲を指定できるようにした

99/10/07:
かんなサーバホストを ~/.emacs で指定できるようにする(三重大の本田さん パッチありがとうございます)

99/10/07:
文節縮め時に"う゛"が分断されないようにした

99/06/17:
minibuffer を別フレームにしている時に、 選択/登録モード時のフレーム(バッファ)の切替えがおかしい問題の対処

99/04/28:
fence-mode 時の C-e の動作が遅かったのでその部分を高速化

Updated: 2010/10/01 knak@ceres.dti.ne.jp