CannaのキーバインドをATOK風にする


Last Update: 2005/01/04
19733 th Visitor

CannaのキーバインドをATOK風に

Windowsを使っていた身としてはCannaの変換時のキーバインドはかなり使いにくいものがあります。
とは言う物の、さすがに何年も使っていれば慣れてくるんですが、それでもWindowsを使う時はATOKで入力しているので、やはり慣れたキーバインドの方が良いに決まってます。

というわけで、Cannaの設定ファイルを色々変更してCannaのキーバインドを極力ATOKに近づけてやろうというのが今回の作戦です。

なお、同様の方法でMS-IMEのキーバインドに近づけることも可能だと思います。

キーバインドを変更する

キーバインドの変更はCannaの設定ファイル.cannaで設定します。
かんな辞書(拡張版)の所で.cannaをホームにコピーして辞書を追加しましたが、今回も同じように.cannaにキーバインド等の設定を書いてやります。
が、各IME互換の.cannaのひな形が既にありますので、それをホームにコピーして編集します。
なお、.cannaを新しくコピーしてしまうと拡張辞書等の設定は元に戻ってしまうので、必要があれば後で.cannaに各自追加する必要があります。

> cd /usr/local/share/canna/sample/

の中を見てください。
ここに様々なIME互換にある程度設定された.cannaファイルが置いてあります。
中にはとても懐かしい名前のファイルがありますが、今回の目的であるATOK互換の設定ファイルはjust.cannaです。
ちなみにMS-IMEはAIソフトのWXシリーズをベースとしているので、wx2+.cannaがそれに当たります。

なわけで一応既存の.cannaをバックアップし、just.cannaをホームディレクトリにコピーします。

> mv ~/.canna ~/.canna.bak
> cp /usr/local/share/canna/sample/just.canna ~/.canna
> cd ~
> chmod 644 .canna

これで一旦ログアウトしてログインすれば、Cannaを起動すると「あ連」という見慣れたマークが出てきてハッピーになれると思います(笑

さらにCannaをATOKに近づける

これで変換途中に、左右を押せば文節区切りの変更になったり、下を押せば部分確定になったり、F7を押せばカタカナになったりと大分使い勝手が向上するんですが、細かいところの配慮がこの設定ファイルではされていません。
これは随分昔のバージョンのATOK互換のファイルなので、.cannaをいじって現在のATOKに近づけていきます。

とりあえず問題になるのは、記号を変換したときの候補がATOKにはほど遠い事です。
これをATOK的にフル指定してやります。

> vi ~/.canna

;; シンボルの定義

としてやって、一番下の方を見てやると「;; シンボルの定義」という所があると思います。
これが記号を変換した時の設定です。
とりあえず既存の設定を全て消して以下のように指定していきます。

とりあえず全ての記号の変換候補を今のATOKと同じようになるように指定します。

;; シンボルの定義

(defsymbol ?~ "〜" " ̄" "~" )
(defsymbol ?\\ "¥" "\" "\\" )

(defsymbol
  ?? "?" "?"
  ?! "!" "!" )

(defsymbol ?# "#" "#")
(defsymbol ?$ "$" "$")
(defsymbol ?% "%" "%")
(defsymbol ?& "&" "&")

(defsymbol
  ?' "’" "'" "”" "“"
  ?` "`" "‘" "`" )

(defsymbol ?\" "”" "\"" "“" "’" "‘" )

(defsymbol
  ?; ";" ";"
  ?: ":" ":" )

(defsymbol ?| "|" "|" "‖" )
(defsymbol ?_ "_" "_" )
(defsymbol ?^ "^" "^" )

(defsymbol ?+ "+" "+" "±" )
(defsymbol ?- "ー" "-" "‐" "−" "〜" "±" )
(defsymbol ?* "*" "*" "×" "※" )
(defsymbol ?/ "・" "/" "…" "‥" "\" "÷" )
(defsymbol ?= "=" "=" "≠" "≡" "≒" "〓" )

(defsymbol
  ?. "。" "?" "!" "." "…" "‥"
  ?, "、" "," "," )

(defsymbol
  ?[ "「" "『" "【" "‘" "“" "[" "{" "〈" "《" "(" "〔" "["
  ?] "」" "』" "】" "’" "”" "]" "}" "〉" "》" ")" "〕" "]" )

(defsymbol
  ?{ "{" "{" "『" "「" "【" "‘" "“" "[" "〈" "《" "(" "〔" "["
  ?} "}" "}" "』" "」" "】" "’" "”" "]" "〉" "》" ")" "〕" "]" )

(defsymbol
  ?( "(" "(" "【" "{" "{" "『" "「" "‘" "“" "[" "〈" "《" "〔" "["
  ?) ")" ")" "】" "}" "}" "』" "」" "’" "”" "]" "〉" "》" "〕" "]" )

(defsymbol
  ?< "<" "<" "〈" "《" "≦" "≪"
  ?> ">" ">" "〉" "》" "≧" "≫" )

これで記号を変換した時に幸せになれます。
また、数字を変換した時に半角数字を優先させる場合は、

(defsymbol
  ?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" "九" "九"
  ?0 "0" "0" "〇" "零" )

と指定してやります。

また、この状態では「la」で「ぁ」は出ますが「xa」で「ぁ」が出ません。
私は別に使わないのでかまいませんが、使うときがもしかしたら来るかもしれないので出るようにローマ字かな変換テーブルを変更してやります。

ローマ字かな変換テーブルは、

> cd /usr/local/share/canna/dic

の中にあり、just.cannaはjust.cdpというテーブルを使用しています。
が、これはバイナリファイルなので直接変更することはできません。
なので、/usr/local/lib/canna/sample/src/にあるソースを変更してコンパイルしてやる必要があります。
早速やってみましょう。ここでは一応バックアップを考慮してjustnew.ctdにコピーしてコンパイルします。

> su
# cd /usr/local/share/canna/sample/src/
# cp just.ctd justnew.ctd
# vi justnew.ctd

適当な場所に以下を追加

xa ぁ
xi ぃ
xu ぅ
xe ぇ
xo ぉ

編集できたらコンパイルします。

# mkromdic justnew.ctd

とするとjustnew.cdpができあがるので、これをdicに移動してやります。

# mv justnew.cbp ../../dic/

これが出来たら、ホームディレクトリの.cannnaを編集して、使うかな変換テーブルを変更します。

# exit
> cd ~
> vi .canna

(setq romkana-table "just.cbp")



(setq romkana-table "justnew.cbp")

に変更する

これで設定は完了です。
再ログインしてCannaを起動して「xa」で「ぁ」が出たら成功です。
他の部分もATOKに近づけることは可能だと思いますが、私はこのくらいで満足しておきました(^^;;
この他にこの部分を変更したよってことがありましたら、是非教えてください。

canuumの日本語入力ON/OFFのキーを変更する

canuumからCannaを呼び出すための、いわゆる日本語入力ON/OFFキーを変更することもできます。
全角/半角キーでON/OFFできるようになるわけではないのでATOKに近づけるわけではありませんが、使い方によっては便利になると思います。

canuumのデフォルトはCtrl+oです。
これを例えばCtrl+\に変更するには.cannaに以下の設定を記述します。
just.cannaを例にとると、

(set-key 'alpha-mode "\C-Xfer" 'japanese-mode)

の部分を

(unbind-key-function 'alpha-mode 'japanese-mode)
(set-key 'alpha-mode "\C-o" 'self-insert)
(set-key 'alpha-mode "\C-\" 'japanese-mode)
(unbind-key-function 'empty-mode 'alpha-mode)
(set-key 'empty-mode "\C-o" 'undefined)
(set-key 'empty-mode "\C-\" 'alpha-mode)
(global-unbind-key-function 'extend)
(global-set-key "\C-o" 'extend)

へ変更します。
\C-\というのがCtrl+\のことです。
同様にCtrl+Spaceにしたい場合は\C-\の部分を\C-@に置き換えてください。


日本語環境


もどるにゅ

トップにもどるにゅ