kkc:scpup64、upupbb/cc

kkcの情報って検索しても結構少ない。やっぱ使ってる人少ないのかなぁ?
NTEmacsを使う場合、特に NTEmacslinux上の emacsも使う様な人は 日本語FEPに kkcの採用を検討する価値はある。
WnnCannaSKKATOKなど FEPに対して拘りのある人はともかく(?) MS-IMEで満足できるなら kkcでも問題ないと思う。
確かにバカ(失礼、シンプルな…)な FEPだけど、なんと言っても emacs標準搭載。
Windowsだろうが、linuxだろうが、Mac(多分同じ…触った事ないけど)でも、別途何かをインストールする必要もなく、使い方も同じである。

日本語入力への切替
・C-\ を押す度に ON/OFする。
・漢字変換は MS-IMEに近い。ひらがな(ローマ字)入力 →スペースで変換。
例えば「歯科医」を変換してみる。
C-\ 「しかい」SPACE →「司会」SPACE →「視界」SPACE … 無念…1周しても "歯科医" は出て来ない。
しょうがないので、 「は」SPCAE → 歯、 「かがく」SPACE → 科学 BS 学消去、「いしゃ」SPACE → 医者 BS 者削除。なんて事になる。
ここまででも、かなり使えん FEPな訳だが…何とか学習してくれんか? と色々やっても …「しかい」SPACE で「歯科医」が出る事はない。
# kkcには学習機能なんてありません。
ほとんどの人は、このあたりで「使えんFEP」と烙印を押してしまうだろう(無理もない)。

 

漢字変換範囲
・C-i/oを覚えると、かなり使いやすくなる。
「しかい」SPACE の後に C-iとか C-oを押すと漢字変換範囲を変更できる。
これで 「しか」までを変換範囲に設定すると "歯科" は数回の SPACEで出てくる。
続けて C-fで変換範囲を「い」にすれば "医"もすぐに出る。
・L/l(小文字)での候補ページめくり
更に SPACEでの変換中に Lまたは l(小文字)を押すとモードラインに表示される候補をページめくりできる。SPACEで 1候補づつ進めるのに対し、数倍早く目的の漢字を見付ける事が出きる。

 

カタカナ
・K(大文字)
「しかい」K で シカイ になる。
以上の 3つを覚えると・・・kkcに対する、印象は変わり…「意外と使えるかも…」と言う気持ちになる。

 

辞書登録
とは言え・・・学習機能は無い。個人辞書も登録出来ないってのも…シンプル イズ ベストとは言え、やりすぎ…。相変わらず 「しかい」SPACE 一発で "歯科医"にはならない。
少々強引だが、個人辞書登録を行う。
・ja-dic.elの設置
kkcの辞書は通常 ~/emacs/XX.X/lisp/leim 以下に elisp(ja-dic.el)として置かれている。
これを ~/.emacs.d/などにコピーし、init.elには「(load-library "~/.emacs.d/ja-dic.elc")」などとして、起動時読み込む様にする。
ja-dic.elはバイトコンパイル(*.elc)して 読み込んだ方良い。辞書なので、そこそこデカく、*.elのままだと読み込むのに時間がかかる。
#バイトコンパイルemacsで ~/.emacs.dを diredして ja-dic.elの上で B(大文字)で可能。
・ja-dic.el編集(編集前に、念のためバックアップしておこう)
emacsで ~/.emacs.d/ja-dic.elを読み込み「しかい」の部分を編集する。
日本語検索が必要になるので、init.elに↓を記載しておけば、C-sC-kC-\しかい を検索できる。
;;非ASCII文字列検索を可能にする。C-sやC-rの後でC-kを入力する。
(define-key isearch-mode-map "\C-k" 'isearch-edit-string)
ja-dic.elを読み込んだら M-x text-modeしてから編集するのがおすすめ。
なんと言ってもデカイ日本語ファイル。これしてないと重い・・・
見つけた「しかい」の行は、その場で修正を加えず、行を切り取り↓の様に 辞書の最終行に移動してから、
----------------------------------------------------------------

"をことてん 乎古止点"
"をんな 女"
;;↓個人辞書 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
"しかい 此界 尸解 死灰 四界 志怪 斯界 四海 死海 市会 視界 司会 歯科医"
;;↑個人辞書 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)

;;
(provide 'ja-dic)

------------------------------------------------------------------
"歯科医" を加える。
こうしておけば、後々辞書の修正部分が解り易い。
それと、修正した ja-dic.elを保存したら、バイトコンパイルを忘れずに!!!!
・kkcrcの編集(編集前に、念のためバックアップしておこう)
辞書である ja-dic.elを編集しただけでは、反映されないのが、なかなか洒落ている…orz
学習機能は無いが、履歴があり、これが邪魔をして新しい辞書の内容が反映されない。
#履歴だけで、これだけの使い勝手を実現してるのも…ある意味すごい気はするが…
emacsの再起動
履歴ファイルは ~/.emacs.d/kkcrcとして保存されている。emacs終了時にこのファイルは更新される(?)様で、まず kkcrcを最終の状態にするために emacsを再起動する。
emacsで kkcrcを開き編集する。
一見、チンプンカンプンに見えるが…よーく見ていると 意味 が見えてく。
(数字 t(数字 (数字 "候補の漢字群")))
となっている。
対応する括弧(~)が分かり難い場合は emacsのオプションで括弧のペアを確認できる。

f:id:b_b_b_b:20190304112505j:plain

例えば「しか」の場合↓の様に 6番目が前回採用され履歴となっている。
し か 6番目 ↓これ
(12375 t (12363 (6 "敷か" "如か" "若か" "及か" "鹿" "歯科" "市価" "史家" "雌花" "私家" "志賀" "子夏" "詩家" "紙価" "詞華" "賜暇" "翅果" "然" "飾" "爾" "餝" "四科" "知客" "詩歌") (12356 (6 "司会" "視界" "市会" "死海" "四海" "斯界" "志怪" "四界" "死灰" "尸解" "此界" "始交い" "始飼い" "始買い" "始歌意" "始下意" "始下位" "始甲斐" "私交い" "私飼い" "私買い" "私歌意" "私下意" "私下位" "私甲斐"))))
↑の場合、「しか」と、その後打ったが出ずにあきらめた「しかい」の履歴が入っている。
同様に「い」の履歴が↓の様になっている。
い 4番目 ↓これ
(12356 (4 "胃" "意" "異" "医" "位" "井" "伊" "委" "衣" "居" "射" "威" "亥" "夷" "姨" "洟" "痍" "維" "帷" "惟" "唯" "韋" "違" "偉" "緯" "幃" "圍" "囲" "慰" "尉" "熨" "蔚" "萎" "痿" "逶" "矮" "謂" "渭" "椅" "倚" "猗" "為" "爲" "彙" "彝" "彜" "以" "苡" "詒" "貽" "怡" "遺" "依" "易" "畏" "移" "堰" "莞" "詑" "胆" "猪" "鮪" "揖" "噫" "已" "恚" "懿" "矣" "肄" "頤" "饐" "鰄" "醫" "囗" "五" "ゐ" "如" "斐" "鋳" "鑄" "忌" "偽" "僞" "李"))
これらの履歴を削除する。この履歴を編集するために C-sC-kC-\しか →歯科 など kkcを用いて検索しても、問題ないようだ(履歴には残らない)。
・登録の確認
辞書、kkcrc共に修正したら emacsを再起動して「しかい」を変換してみる。
「歯科医」が出てくる。
…とまぁ、文章にすると大変な作業に見えるが…
意外と慣れてソソクサと登録出来る様になる。と言うか…人にもよるだろうけど…
20個も登録すれば、自分は事足りた。
#kkcrcなんて…結構、修正せずにポイっと捨てて作り直しているけどね。
そろそろ ~/.emacs.dフォルダを /mnt/homeに移動し、リンクしたた方が良いかもしれない。個人辞書を置いた事もあるし、kkcrcは単調増加するファイルだ。個人保存領域の圧迫につながる。

 

kkcを使っているもう 1つの理由。
NTEmacsIME対応版がいつでもあるか? 分からない。
例えば puppyでも[半角/全角]キーで SCIMAnthyが起動して日本語入力できる。
MS-IMEも同じ [半角/全角]キー。これに emacsも反応してくれるのが一番ベスト。
だって、emacsでも officeでも[半角/全角]キーで FEPを ON/OFFできるのだから、それが一番良いに決まってる。
GNUNTEmacsは標準的には MS-IMEには対応していない。
NTEmacsIME対応は、有志の「ネ申」が現れて都度 patchを当て提供してくれている。
将来的に本家(GNU)も対応してくれるかもしれないが、その可能性は低い。
と言うか…実は以前この patchを採用した時期があるらしい。しかしながら、他の 2バイトコード圏で問題があったのか? 不採用にもどされた経緯があるらしい(?どっかで読んだ記事)。
神が降臨し続けくれれば良いのだが…
#おまえが、神になれよ…それは絶対無理…orz