Canna

ユーザごとの設定

$HOME/.canna でユーザごとの設定を行う。 ports で入れた場合にはデフォルトの雛型が /usr/local/share/canna/default.canna にあるはずなので、 これをコピって来るのが速い。

この設定ファイルは 簡易lisp で書かれているので、 括弧の対応を壊さないよう注意する。 このファイルのお設定だけでも、かなり使い勝手が変わってくる。 たとえば

  (defselection kakko-mode "[括弧]"
    '("()" "[]" "{}" "「」" "『』" "【】" "〔〕" "〈〉" "《》"))

  (set-key 'henkan-nyuuryoku-mode "\C-k" 'kakko-mode)

のように設定すると Ctrl-K で「括弧モード」になる。

また、たとえば

      (defsymbol ?0 "0" "0" "〇" "零"
                 ?1 "1" "1" "一" "壱"
                 ?2 "2" "2" "二" "弐"
                 ?3 "3" "3" "三" "参"
                 ?4 "4" "4" "四" "肆"
                 ?5 "5" "5" "五" "伍"
                 ?6 "6" "6" "六" "禄"
                 ?7 "7" "7" "七" "漆"
                 ?8 "8" "8" "八" "捌"
                 ?9 "9" "9" "九" "玖" )

こんな風に、数字を記号として設定してしまうのも便利だ。

ユーザ辞書

ユーザ辞書は 作る→設定ファイルに登録→単語登録 で簡単に使える。

% mkdic dicname
% vi ~/.canna
    :
(use-dictionary
 :user "dicname"  ←こんな感じで追加
 "gcanna"
 "iroha"
 "fuzokugo"
 "suffix"
 :bushu "bushu"
 "hojomwd"
 "hojoswd"
 "gcannaf"
)
    :

1 つと言わず、たくさん辞書を作ってもかまわない。 通常の自分用辞書、顔文字辞書、カタカナ語辞書、などと分けて使う方法が考えられる。 あとは単語登録しまくるのみ。 拡張モードから単語登録で入れてもいいし、addwords で一括登録でもいい。 ユーザ辞書のバックアップは catdic でテキストに落すようにしておく。 こういうのは cron で回してもいいだろう。

頻度学習辞書

マッサラな状態から始めたい時には頻度学習辞書を以下の手順で初期化してしまえ。

% for dic in `lsdic -i`
do
  rmdic -fq $dic
  mkdic -fq $dic
done

ローマ字変換テーブル

ローマ字→かなの変換をカスタマイズするには、一覧定義ファイルを作っておいて mkromdic コマンドを使う。 一覧定義ファイルをイチから作るのは骨が折れる(なにしろ あ から ん までで 十分疲れる)ので、叩き台を元に追加変更していく戦法がよい。 叩き台として最適なのはやはりデフォルトの ローマ字→かな 対応テーブルだ。 これはソースツリーに含まれている dic/phono/default.kpdef から 作られているようなので、ソースを展開してこのファイルを手に入れる。 例えば $lib/myroman.kpdef としてコピーして編集する。 下のように、カスタマイズしたいエントリを…

/* やじるしを vi 風に入力する */
zh       ←
zj       ↓
zk       ↑
zl       →

…追加編集したと仮定すると、これを利用するためには

  1. mkromdic myroman.kpdef
  2. できた mroman.cbp を例えば $HOME/lib/ にコピー
  3. $HOME/.canna の (setq romkana-table "default.cbp") を消して、
  4. $HOME/.canna に (setq romkana-table "lib/myroman.cbp") と追記。

というような手順を踏む。ソースツリーには、デフォルトの変換テーブル以外にも vje 風とか wx2 風とか、いろいろなテーブルが用意されているので漁ってみるべし。

Kinput2 との組合せ

Kterm 側の設定によらず、 Kinput2 (XIM サーバ?) はデフォルトで Ctrl-O を XIM の ON/OFF として捕捉してしまうので、 screen で Ctrl-O を 使いたい場合には困ってしまう。 この場合、$HOME/.canna に

(global-unbind-key-function 'japanese-mode)

と書いておけば回避できる模様。

一括登録簡易スクリプト

MS-IME の「辞書ツール」から出力したユーザ登録単語一覧を canna に登録できる形にする簡易スクリプト。 Windows 95 の辞書を canna に移行する時に使った。

#!/bin/sh
# filename: IME2canna
filename="$HOME/output1.txt"
if [ ! -f $filename ]; then
    read -p "Input IME output filename: " filename
    echo $filename
fi
nkf -e $filename | sed 's/^M//' |\
  sed 's/人名$/#JN/' | sed 's/姓$/#JN/' | sed 's/名$/#JN/' |\
  sed 's/さ変名詞$/#T30/' |\
  sed 's/固有名詞$/#T35/' |\
  sed 's/名詞$/#T35/' |\
 awk 'BEGIN{FS="\t"}{printf("%s %s %s\n",$1,$3,$2)}'

あぁ、これ書いた時は sed に 「-e」があるのを知らなかったのね…>自分

拡張モード

拡張モードに入ると単語登録や部首入力などができる。 拡張モードに入るためのキーバインドは $HOME/.canna で定義する。

         (global-set-key "\C-\" 'extend-mode)

のように書いておけば、Ctrl-\ で拡張モードになり、メニューを辿っていくことで 感覚的にメンテナンスができる。抜けるには、Ctrl-g をどんどん押していけばよい。

rcNG

昔は /usr/local/etc/rc.d/ に適当にスクリプト書いて起こしてあげればよかったが、 最近ではこのスクリプトが rcNG 対応になったので /etc/rc.conf への記述が必要になった。

canna_enable="YES"
canna_flags="-u bin -inet"

rkc.conf の設定

rkc.conf は Canna 3.7 から新たに追加された機能だ。 「複数の Canna サーバへの接続を切り替えて使いたいが、 その際にいちいちサーバごとのオプションを書き換えるのは面倒だ」 という高度な欲求を持っている人は、この設定をするべき。 「そんな難しいことはしないよ」という人は、見なくていい。

rkc.conf は $HOME/.cannax/rkc.conf として作成する。 このファイルがない場合、cannacheck が

RKCの設定ファイルがありません

という出力をするが、ローカルマシン1台で client/server が閉じている環境ならば 特に気に病む必要はない。

このエラーが気になる場合は、空ファイルでよいので $HOME/.cannax/rkc.conf を 作成しておく。

このファイルを利用して複雑な設定をしたい場合には、書き方を説明したファイルが Canna ソースを展開したトップに「RKCCONF.jp」として置いてあるので、 熟読するべし。

品詞

品詞コード品詞名
#T35名詞(一般的な名詞)山、本
#T30さ変名詞努力、検査
#KK団体・会社名WWF
#JN人名漫☆画太郎
#CN地名ヴァナディール
#K5動詞(か行5段活用)描く
#G5動詞(が行5段活用)注ぐ
#S5動詞(さ行5段活用)倒す
#T5動詞(た行5段活用)経つ
#N5動詞(な行5段活用)死ぬ
#B5動詞(ば行5段活用)転ぶ
#M5動詞(ま行5段活用)住む
#R5動詞(ら行5段活用)威張る
#W5動詞(わ行5段活用)言う
#KS動詞(上下一段活用)降りる
#KX動詞(カ変活用)来る
#ZX動詞(ザ変活用)感ずる
#SX動詞(サ変活用)関する
#K5r動詞(か行5段活用で連用形が名詞)動く
#C5r動詞(か行5段活用で連用形が名詞特殊)行く
#G5r動詞(が行5段活用で連用形が名詞)急ぐ
#S5r動詞(さ行5段活用で連用形が名詞)写す
#T5r動詞(た行5段活用で連用形が名詞)勝つ
#B5r動詞(ば行5段活用で連用形が名詞)遊ぶ
#M5r動詞(ま行5段活用で連用形が名詞)歩む
#R5r動詞(ら行5段活用で連用形が名詞)見張る
#W5r動詞(わ行5段活用で連用形が名詞)扱う
#KSr動詞(上下一段、語幹が名詞)生きる
#KY形容詞美しい、早い
#KYT形容詞古い
#T00形容動詞(サ変名詞としても使う)心配だ
#T05形容動詞幸運だ
#F04副詞
#F06副詞
#F12副詞
#F14副詞
#KJ単漢字
#NN数詞
#RT連体詞
#CJ接続詞・感動詞及び

キーバインド抜粋

キーバインド効果
@@ 全角空白の入力
INS 記号入力モード
C-b文節の移動、前へ
C-f文節の移動、後へ
C-i文節の伸縮、縮める
C-o文節の伸縮、伸ばす
C-u 全角アルファベット(大文字)変換
C-l 全角アルファベット(小文字)変換
C-n 全角カナ→半角カナ→全角アルファベット→半角アルファベット
C-p 半角アルファベット→全角アルファベット→半角カナ→全角カナ
C-y コード(4桁)→文字変換

機能名

名  前 デフォルト 機  能
japanese-mode Xfer, C-o 日本語モードに移行する
alpha-mode Xfer, C-o アルファベットモードに移行する
quoted-insert C-q 次の一文字を無条件に入力する
henkan-nyuuryoku-mode - 変換入力モードに移行する
self-insert a〜z, A〜Z, 記号等.... その文字を入力する
henkan-or-self-insert - 連文節変換時、ベースがひらがな以外のとき、その文字を入力する
henkan-or-do-nothing - 逐次自動変換時、ベースがひらがな以外のとき、なにも行わない
hex-mode - コード入力モードに移行する
bushu-mode - 部首入力モードに移行する
kigou-mode Insert 記号入力モードに移行する
russian-mode - ロシア文字入力モードに移行する
greek-mode - ギリシャ文字入力モードに移行する
line-mode - 罫線入力モードに移行する
chikuji-mode - 逐次自動変換モードに移行する
renbun-mode - 連文節変換モードに移行する
undefined - そのキーに割り当てられている機能を未定義に戻す
temporary - 現在のモードをセーブし、次のモードの準備をする
forward →, C-f 右移動
backward ←, C-b 左移動
next ↓, C-n 下移動
previous ↑, C-p 上移動
beginning-of-line C-a 左端へ移動
end-of-line C-e 右端へ移動
delete-next C-d 次一文字消去
delete-previous Backspace, C-h 前一文字消去
kill-to-end-of-line C-k 行末まで消去
henkan Space, Xfer 変換
kakutei Nfer, Return, C-m, C-j 確定
extend S-→, C-o 領域伸ばし
shrink S-←, C-i 領域縮め
shinshuku-mode - 文節伸縮モードに移行する
quit C-g とりやめ
extend-mode Help メニュー
touroku-mode - 単語登録
delete-dic-mode - 単語削除
jisho-ichiran - 辞書のマウント/アンマウント情報を表示する
sync-dictionary - 辞書の書き込みを行う
show-sever-name - サーバを表示する
switch-server - サーバを切り替える
disconnect-server - サーバとの接続を切る
show-gakushu - 学習状態を表示する
show-canna-version - かんなのバージョンを表示する
show-romkana-table - ローマ字かな変換テーブルを表示する
show-canna-file - カスタマイズファイルを表示する
convert-as-hex C-y 16進数とみなして変換
convert-as-bushu C-w 部首名とみなして変換
kouho-ichiran C-w 候補一覧表示
zenkaku - 全角変換
hankaku - 半角変換
to-upper C-u 大文字に変換
capitalize - 先頭だけを大文字に変換
to-lower C-l 小文字に変換
hiragana - ひらがな変換
katakana - カタカナ変換
romaji - ローマ字変換
base-hiragana - 入力ベースをひらがなにする
base-katakana - 入力ベースをカタカナにする
base-kana - 入力ベースをカナにする
base-eisu - 入力ベースを英数にする
base-zenkaku - 入力ベースを全角にする
base-hankaku - 入力ベースを半角にする
base-kakutei - 入力モードを確定モードにする
base-henkan - 入力モードを変換モードにする
base-hiragana-katakana-toggle - 入力ベースをひらがなとカタカナでトグルする
base-zenkaku-hankaku-toggle - 入力ベースを全角と半角でトグルする
base-kana-eisu-toggle - 入力ベースをカナと英数でトグルする
base-kakutei-henkan-toggle - 入力モードを確定と変換でトグルする
base-rotate-forward - 入力ベースを順番に切替える
base-rotate-backward - 入力ベースを逆順に切替える
henshu C-c カレント文節を読みに戻す
mark C-Space, C-@ マーク
[$Revision: 1.6 $ $Date: 2007.02.11 16:41:42 $]
[EOF]