でけた。
結局ほとんど~/.cannaだけで何とかなってもーた。
参考にしたURLはこのへん。
http://www.nga.jp/~sawa/?date=200202
http://lists.sourceforge.jp/mailman/archives/canna-dev/2004-March/000296.html
http://www.flcl.org/~yoh/diary/20031025.html
http://www.sd-dream.com/pasocompass/050210CannaCustomize.html
http://lists.sourceforge.jp/mailman/archives/canna-dev/2004-September/000319.html
;;; 拡張メニューをあまり使わない場合は、do-not-use-extend-mode を ;;; t に設定して下さい。 (setq do-not-use-extend-mode nil) ;;; ローマ字かな変換の設定 (setq romkana-table "just.cbp") ;;; 利用する辞書 (use-dictionary "iroha" "fuzokugo" "hojomwd" "hojoswd" :bushu "bushu" :user "user" ) ;日本語入力 on にする。 (set-key 'alpha-mode "\C-Xfer" 'japanese-mode) ; 右端で右に行こうとすると左端にいく。 (setq cursor-wrap t) ; default t ; 一覧表示で数字を打ったときに選択までする。 (setq select-direct t) ; default t ; 一覧表示で数字で選択する。 (setq numerical-key-select t) ; default t ; ローマ字かな変換の単位でカーソルを移動する。 (setq character-based-move nil) ; default t ; 入力中の読み全体をリバースしない。 (setq reverse-widely nil) ; default nil ; 頻度学習をする。 (setq gakushu t) ; default t ; 一覧の最後までいったら、また先頭の候補を表示する。 (setq quit-if-end-of-ichiran nil) ; default nil ; 文節の右端で右移動をすると全体が確定する。 (setq kakutei-if-end-of-bunsetsu nil) ; default nil ; 読みを入力中にバックスペースを打つと文字ベースで削除を行う。 (setq break-into-roman nil) ; default nil ;一覧から選択を行うとひとつ先の文節に移動する。 (setq stay-after-validate nil) ; default t ; 2 回変換キーを押すと一覧表示を行う。 (setq n-henkan-for-ichiran 2) ; default 2 ; 候補が全体の何番目かを表示する。 (setq kouho-count t) ; default t ; 単語登録/削除の直後に辞書の書き出し処理を行う (setq auto-sync t) ; default t ;; キーマップ (global-unbind-key-function 'extend) (global-unbind-key-function 'shrink) (global-unbind-key-function 'forward) (global-unbind-key-function 'backward) (global-unbind-key-function 'previous) (global-unbind-key-function 'next) (global-unbind-key-function 'beginning-of-line) (global-unbind-key-function 'end-of-line) (global-unbind-key-function 'kill-to-end-of-line) ;; HomeとInsertへの謎のバインドを解除 (global-unbind-key-function 'extend-mode) (global-unbind-key-function 'kigou-mode) (global-set-key "\Backspace" 'delete-previous) (global-set-key "\C-l" 'extend) (global-set-key "\C-k" 'shrink) (global-set-key "\Right" 'forward) (global-set-key "\C-d" 'forward) (global-set-key "\Left" 'backward) (global-set-key "\C-s" 'backward) (global-set-key "\C-Left" 'beginning-of-line) (global-set-key "\C-a" 'beginning-of-line) (global-set-key "\C-Right" 'end-of-line) (global-set-key "\C-f" 'end-of-line) (global-set-key "\Up" 'previous) (global-set-key "\C-n" 'next) (global-set-key "\Down" 'next) (global-set-key "\Return" 'kakutei) (global-set-key "\Escape" 'quit) ;; 入力モードの定義 (defmode zenkaku-hiragana-mode " あ固 " romkana-table '(zenkaku hiragana kakutei) t) (defmode zenkaku-katakana-mode " ア固 " romkana-table '(zenkaku katakana kakutei) t) (defmode hankaku-katakana-mode " ア 固 " romkana-table '(hankaku katakana kakutei) t) (defmode zenkaku-eisu-mode " A固 " nil '(zenkaku kakutei) nil) (defmode hankaku-eisu-mode " A 固 " nil '(hankaku kakutei) nil) (set-key 'empty-mode "\C-Nfer" 'zenkaku-katakana-mode) (set-key 'zenkaku-katakana-mode "\C-Nfer" 'hankaku-katakana-mode) (set-key 'hankaku-katakana-mode "\C-Nfer" 'zenkaku-hiragana-mode) (set-key 'zenkaku-hiragana-mode "\C-Nfer" 'henkan-nyuuryoku-mode) (set-key 'empty-mode "\S-Nfer" 'zenkaku-eisu-mode) (set-key 'zenkaku-eisu-mode "\S-Nfer" 'hankaku-eisu-mode) (set-key 'hankaku-eisu-mode "\S-Nfer" 'henkan-nyuuryoku-mode) (global-set-key "\Nfer" 'henkan-nyuuryoku-mode) (set-key 'henkan-nyuuryoku-mode "\Nfer" 'hankaku-eisu-mode) (global-set-key "\Han/Zen" 'henkan-nyuuryoku-mode) (set-key 'henkan-nyuuryoku-mode "\Han/Zen" 'hankaku-eisu-mode) (set-key 'empty-mode "\F10" 'kigou-mode) ;; 読みモード時 (let ( (mode 'yomi-mode)) (set-key mode "\Delete" 'delete-next) (set-key mode "\F6" 'hiragana) (set-key mode "\F7" 'katakana) (set-key mode "\F8" 'hankaku) (set-key mode "\F9" 'romaji) (set-key mode "\F10" '(romaji hankaku))) (set-key mode "\C-l" 'forward) (set-key mode "\C-k" 'backward) (set-key mode "\Space" 'henkan) (set-key mode "\Xfer" 'henkan) (set-key mode "\C-n" 'kakutei) (set-key mode "\Down" 'kakutei) ) ;; 単候補モード時 (let ( (mode 'tankouho-mode)) (set-key mode "\S-Right" 'forward) (set-key mode "\S-Left" 'backward) (set-key mode "\F6" 'hiragana) (set-key mode "\F7" 'katakana) (set-key mode "\F8" 'hankaku) (set-key mode "\F9" 'romaji) (set-key mode "\F10" '(romaji hankaku))) (set-key mode "\C-n" 'forward) (set-key mode "\Down" 'forward) (set-key mode "\Right" '(shinshuku-mode extend)) (set-key mode "\C-l" '(shinshuku-mode extend)) (set-key mode "\Left" '(shinshuku-mode shrink)) (set-key mode "\C-k" '(shinshuku-mode shrink)) (set-key mode "\Xfer" 'kouho-ichiran) (set-key mode "\Space" 'henkan) ) ;; 文字種モード時 (let ( (mode 'mojishu-mode)) (set-key mode "\F6" 'hiragana) (set-key mode "\F7" 'katakana) (set-key mode "\F8" 'hankaku) (set-key mode "\F9" 'romaji) (set-key mode "\F10" '(romaji hankaku))) (set-key mode "\C-n" 'forward) (set-key mode "\Down" 'forward) (set-key mode "\Right" 'extend) (set-key mode "\Left" 'shrink) ) ;; 一覧候補モード時 (let ( (mode 'ichiran-mode)) (set-key mode "\S-Xfer" 'previous) (set-key mode "\Xfer" 'next) (set-key mode "\Space" 'forward) (if do-not-use-extend-mode (progn (set-key mode "\Up" 'backward) (set-key mode "\C-n" 'kakutei) (set-key mode "\Down" 'kakutei) (set-key mode "\Right" '(quit shinshuku-mode extend)) (set-key mode "\C-l" '(quit shinshuku-mode extend)) (set-key mode "\Left" '(quit shinshuku-mode shrink))) (set-key mode "\C-k" '(quit shinshuku-mode shrink)) (progn (set-key mode "\C-l" 'forward) (set-key mode "\C-k" 'backward))) ) ;; 記号入力モード時 (let ( (mode 'kigou-mode)) (set-key mode "\C-l" 'forward) (set-key mode "\Space" 'forward) (set-key mode "\C-k" 'backward) (set-key mode "\S-Xfer" 'previous) (set-key mode "\Xfer" 'next) (if do-not-use-extend-mode (progn (set-key mode "\Up" 'backward) (set-key mode "\C-n" 'kakutei) (set-key mode "\Down" 'kakutei))) ) ;; 伸縮モード時 (let ( (mode 'shinshuku-mode)) (set-key mode "\C-u" '(henkan hiragana)) (set-key mode "\F6" '(henkan hiragana)) (set-key mode "\C-i" '(henkan katakana)) (set-key mode "\F7" '(henkan katakana)) (set-key mode "\C-o" '(henkan hankaku)) (set-key mode "\F8" '(henkan hankaku)) (set-key mode "\C-p" '(henkan romaji)) (set-key mode "\F9" '(henkan romaji)) (set-key mode "\Right" 'extend) (set-key mode "\Left" 'shrink) (set-key mode "\C-n" 'forward) (set-key mode "\Down" 'forward) ) ;; モード表示 (set-mode-display 'empty-mode " あ連 ") (set-mode-display 'yomi-mode " あ連 ") (set-mode-display 'henkan-nyuuryoku-mode " あ連 ") (set-mode-display 'chikuji-yomi-mode " あ自 ") (set-mode-display 'chikuji-bunsetsu-mode " あ自 ") ;; シンボルの定義 (defsymbol ?, "、" ",") (defsymbol ?. "。" ".") (defsymbol ?[ "「" "[" ?] "」" "]") (defsymbol ?/ "・" "/")