~/lib/conf/emacs/canna.el
(progn
(if (and (or (and (boundp 'CANNA) CANNA)
(<= emacs-major-version 20))
(not (equal emacs-ime "canna-tamago")))
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; emacs-dl-canna/emcws の場合
(load-library "canna")
;; color-mate を使わないで、漢字変換に色を付けたい時に
;(setq canna-use-color t)
;; フェンスモードでなくアンダーラインを使う
;;(setq canna-with-fences nil)
;;(setq canna-underline t)
;; Canna サーバの指定
(if (null (getenv "CANNA_SERVER"))
(setq canna-server "unix")
(setq canna-server (getenv "CANNA_SERVER")))
(canna)
;; Canna を Ctrl-\ で起動します。コメントアウトすれば、
;; Ctrl-\ で skk が立ち上がります。
(global-set-key "\C-\\" 'canna-toggle-japanese-mode)
(global-set-key "\C-o" 'canna-toggle-japanese-mode)
;; Shift-Space または 半角/全角 でも起動
(global-set-key [?\S-\ ] 'canna-toggle-japanese-mode)
(global-set-key [zenkaku-hankaku] 'canna-toggle-japanese-mode)
(global-set-key "\C-_" 'canna-undo) ;アンドゥの設定。
(setq canna-save-undo-text-predicate ;アンドゥバッファへ入れる条件
'(lambda (s) (> (length (car s)) 2)) )
(setq canna-undo-hook ;アンドゥ+α。
'(lambda () (message "再変換します....")
(canna-do-function canna-func-henkan)) )
;;かんなの変換中に BS & DEL を使う
(define-key canna-mode-map [backspace] [?\C-h])
(define-key canna-mode-map [delete] [?\C-h])
;;かんなの変換中に C-h を使う (with term/keyswap)
(define-key canna-mode-map [?\177] [?\C-h])
))
(if (or (and (not (and (boundp 'CANNA) CANNA))
(>= emacs-major-version 21))
(equal emacs-ime "canna-tamago"))
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; emacs-dl-canna/emcws でないとき (tamago4)
;; Canna サーバの指定
(if (null (getenv "CANNASERVER"))
(setq canna-server "localhost")
(setq canna-server (getenv "CANNASERVER")))
(require 'egg)
;; InputMethod の設定
(setq default-input-method "japanese-egg-canna")
;; tamago v4 共通設定
(setq
;; 何回変換すると(自動的に)辞書に反映するか
wnn-auto-save-dictionaries 1
;; nil にすると、alphanumeric が半角入力になるらしい。
its-enable-fullwidth-alphabet nil
;; Backspace で消すときに、かなを入力したローマ字に展開して
;; ローマ字単位で消す?
its-delete-by-keystroke t
;; 外すと操作方法が変わるみたいです。よく分かりません。
egg-mode-preference t
;; "nn" で「ん」を入力
enable-double-n-syntax t
;; "." で「.」、"," で「,」を入力。
use-kuten-for-period nil
use-touten-for-comma nil
;; 候補の最後まで行ったら先頭に戻る
egg-conversion-wrap-select t
;; 候補一覧を表示するまでの変換回数、0で非表示
egg-conversion-auto-candidate-menu 2)
;; F7 で toroku-region
(global-set-key [f7] 'egg-toroku-region)
;; egg-canna.el
(add-hook 'canna-load-hook '(lambda () (load "egg-canna")))
;; Canna 用設定 (Canna 風キー設定)
(load "its")
(define-key global-map "\C-o" 'toggle-input-method)
(global-set-key [?\S-\ ] 'toggle-input-method)
(global-set-key [zenkaku-hankaku] 'toggle-input-method)
(define-key isearch-mode-map "\C-o" 'isearch-toggle-input-method)
(define-key isearch-mode-map [?\S-\ ] 'isearch-toggle-input-method)
(define-key isearch-mode-map [zenkaku-hankaku] 'isearch-toggle-input-method)
(define-key its-mode-map "\C-h" 'its-delete-backward-SYL)
(define-key its-mode-map "\C-p" 'its-hiragana)
(define-key its-mode-map "\C-y" 'its-hiragana)
(define-key its-mode-map "\C-n" 'its-katakana)
(define-key its-mode-map [up] 'its-hiragana)
(define-key its-mode-map [down] 'its-katakana)
(define-key egg-conversion-map "\C-g" 'egg-abort-conversion)
(cond ((eq window-system 'x)
(define-key its-mode-map [henkan] 'its-kick-convert-region)
(define-key its-mode-map [hiragana-katakana] 'its-katakana)
(define-key its-mode-map [muhenkan] 'its-hiragana)
(define-key its-mode-map [f6] 'its-hiragana)
(define-key its-mode-map [f7] 'its-katakana)
(define-key its-mode-map [f8] 'its-half-width)
(define-key its-mode-map [backspace] 'its-delete-backward-SYL)
;(define-key menudiag-mode-map [backspace] 'menudiag-exit-one-level)
(define-key its-mode-map [delete] 'its-delete-SYL))
((null window-system)
(define-key its-mode-map "\e[17~" 'its-hiragana)
(define-key its-mode-map "\e[18~" 'its-katakana)
(define-key its-mode-map "\e[19~" 'its-half-width)
(define-key its-mode-map [8] 'its-delete-backward-SYL)
;(define-key menudiag-mode-map [8] 'menudiag-exit-one-level)
(define-key its-mode-map "\e[3~" 'its-delete-SYL)))
)
)
)
>> emacsの設定