(backspace): New map.
[m17n/m17n-db.git] / ja-anthy.mim
1 ;; ja-anthy.mim -- Japanese input method using Anthy as a conversion server.
2 ;; Copyright (C) 2003, 2004
3 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
4 ;;   Registration Number H15PRO112
5
6 ;; This file is part of the m17n library.
7
8 ;; The m17n library is free software; you can redistribute it and/or
9 ;; modify it under the terms of the GNU Lesser General Public License
10 ;; as published by the Free Software Foundation; either version 2.1 of
11 ;; the License, or (at your option) any later version.
12
13 ;; The m17n library is distributed in the hope that it will be useful,
14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 ;; Lesser General Public License for more details.
17
18 ;; You should have received a copy of the GNU Lesser General Public
19 ;; License along with the m17n library; if not, write to the Free
20 ;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21 ;; 02111-1307, USA.
22
23 (input-method ja anthy)
24
25 (description "Japanese input method with Anthy as a kana-kanji converter.
26 Typed roma-ji is at first converted to Hiragana,
27 and Space key converts the Hiragana sequences
28 to Kanji-Hiragana mixed sequence.
29
30 This input method uses the loadable module libmimx-anthy.so to
31 communicate with Anthy.  For more detail about Anthy, see the page
32   <http://sourceforge.jp/projects/anthy/>.
33 ")
34
35 (variable
36  (input-mode 
37   "Hiragana or Katakana
38 Select Hiragana or Katakana"
39   hiragana
40   hiragana katakana)
41  (zen-han
42   "Zenkaku or Hankaku"
43   zenkaku
44   hankaku))
45
46 (command
47  (henkan
48   "Convert
49 Convert Hiragana to Kanji"
50   (\ )
51   (Henkan)))
52
53 (title "aあ")
54
55 (map
56  (starter
57   ("a") ("i") ("u") ("e") ("o")
58   ("k") ("s") ("t") ("n") ("h") ("m") ("y") ("r") ("l") ("w")
59   ("g") ("z") ("d") ("b") ("p")
60   ("c") ("j") ("f") ("x") ("v") ("z")
61   ("1") ("2") ("3") ("4") ("5") ("6") ("7") ("8") ("9") ("0")
62   ("!") ("@") ("#") ("$") ("%") ("^") ("&") ("*") ("(") (")")
63   ("-") ("=") ("`") ("\\") ("|") ("_") ("+") ("~") ("[") ("]")
64   ("{") ("}") (":") (";") ("\"") ("'") (".") (",") ("<") (">")
65   ("?") ("/"))
66
67  (ordinary
68   ( "a" "あ") ( "i" "い") ( "u" "う") ( "e" "え") ( "o" "お")
69   ("ka" "か") ("ki" "き") ("ku" "く") ("ke" "け") ("ko" "こ")
70   ("sa" "さ") ("si" "し") ("su" "す") ("se" "せ") ("so" "そ")
71   ("ta" "た") ("ti" "ち") ("tu" "つ") ("te" "て") ("to" "と")
72   ("na" "な") ("ni" "に") ("nu" "ぬ") ("ne" "ね") ("no" "の")
73   ("ha" "は") ("hi" "ひ") ("hu" "ふ") ("he" "へ") ("ho" "ほ")
74   ("ma" "ま") ("mi" "み") ("mu" "む") ("me" "め") ("mo" "も")
75   ("ya" "や")             ("yu" "ゆ")             ("yo" "よ")
76   ("ra" "ら") ("ri" "り") ("ru" "る") ("re" "れ") ("ro" "ろ")
77   ("la" "ら") ("li" "り") ("lu" "る") ("le" "れ") ("lo" "ろ")
78   ("wa" "わ") ("wi" "ゐ") ("wu" "う") ("we" "ゑ") ("wo" "を")
79   ("ga" "が") ("gi" "ぎ") ("gu" "ぐ") ("ge" "げ") ("go" "ご")
80   ("za" "ざ") ("zi" "じ") ("zu" "ず") ("ze" "ぜ") ("zo" "ぞ")
81   ("da" "だ") ("di" "ぢ") ("du" "づ") ("de" "で") ("do" "ど")
82   ("ba" "ば") ("bi" "び") ("bu" "ぶ") ("be" "べ") ("bo" "ぼ")
83   ("pa" "ぱ") ("pi" "ぴ") ("pu" "ぷ") ("pe" "ぺ") ("po" "ぽ")
84
85   ("kya" "きゃ") ("kyu" "きゅ") ("kye" "きぇ") ("kyo" "きょ")
86   ("sya" "しゃ") ("syu" "しゅ") ("sye" "しぇ") ("syo" "しょ")
87   ("sha" "しゃ") ("shu" "しゅ") ("she" "しぇ") ("sho" "しょ")
88   ("cha" "ちゃ") ("chu" "ちゅ") ("che" "ちぇ") ("cho" "ちょ")
89   ("tya" "ちゃ") ("tyu" "ちゅ") ("tye" "ちぇ") ("tyo" "ちょ")
90   ("nya" "にゃ") ("nyu" "にゅ") ("nye" "にぇ") ("nyo" "にょ")
91   ("hya" "ひゃ") ("hyu" "ひゅ") ("hye" "ひぇ") ("hyo" "ひょ")
92   ("mya" "みゃ") ("myu" "みゅ") ("mye" "みぇ") ("myo" "みょ")
93   ("rya" "りゃ") ("ryu" "りゅ") ("rye" "りぇ") ("ryo" "りょ")
94   ("lya" "りゃ") ("lyu" "りゅ") ("lye" "りぇ") ("lyo" "りょ")
95   ("gya" "ぎゃ") ("gyu" "ぎゅ") ("gye" "ぎぇ") ("gyo" "ぎょ")
96   ("zya" "じゃ") ("zyu" "じゅ") ("zye" "じぇ") ("zyo" "じょ")
97   ("jya" "じゃ") ("jyu" "じゅ") ("jye" "じぇ") ("jyo" "じょ")
98   ( "ja" "じゃ") ( "ju" "じゅ") ( "je" "じぇ") ( "jo" "じょ")
99   ("bya" "びゃ") ("byu" "びゅ") ("bye" "びぇ") ("byo" "びょ")
100   ("pya" "ぴゃ") ("pyu" "ぴゅ") ("pye" "ぴぇ") ("pyo" "ぴょ")
101
102   ("kwa" "くゎ") ("kwi" "くぃ") ("kwe" "くぇ") ("kwo" "くぉ")
103   ("tsa" "つぁ") ("tsi" "つぃ") ("tse" "つぇ") ("tso" "つぉ")
104   ( "fa" "ふぁ") ( "fi" "ふぃ") ( "fe" "ふぇ") ( "fo" "ふぉ")
105   ("gwa" "ぐゎ") ("gwi" "ぐぃ") ("gwe" "ぐぇ") ("gwo" "ぐぉ")
106
107   ("dyi" "でぃ") ("dyu" "どぅ") ("dye" "でぇ") ("dyo" "どぉ")
108   ("xwi" "うぃ")                ("xwe" "うぇ") ("xwo" "うぉ")
109
110   ("shi" "し") ("tyi" "てぃ") ("chi" "ち") ("tsu" "つ") ("ji" "じ")
111   ("fu"  "ふ")
112   ("ye" "いぇ")
113
114   ("va" "ヴぁ") ("vi" "ヴぃ") ("vu" "ヴ") ("ve" "ヴぇ") ("vo" "ヴぉ")
115
116   ("xa"  "ぁ") ("xi"  "ぃ") ("xu"  "ぅ") ("xe"  "ぇ") ("xo"  "ぉ")
117   ("xtu" "っ") ("xya" "ゃ") ("xyu" "ゅ") ("xyo" "ょ") ("xwa" "ゎ")
118   ("xka" "ヵ") ("xke" "ヶ"))
119
120  (alnum
121   ("1" "1") ("2" "2") ("3" "3") ("4" "4") ("5" "5")
122   ("6" "6") ("7" "7") ("8" "8") ("9" "9") ("0" "0")
123
124   ("!" "!") ("@" "@") ("#" "#") ("$" "$") ("%" "%")
125   ("^" "^") ("&" "&") ("*" "*") ("(" "(") (")" ")")
126   ("-" "ー") ("=" "=") ("`" "`") ("\\" "¥") ("|" "|")
127   ("_" "_") ("+" "+") ("~" " ̄") ("[" "「") ("]" "」")
128   ("{" "{") ("}" "}") (":" ":") (";" ";") ("\""  "”")
129   ("'" "’") ("." "。") ("," "、") ("<" "<") (">" ">")
130   ("?" "?") ("/" "/"))
131
132  (symbol
133   ("z1" "○") ("z!" "●")
134   ("z2" "▽") ("z@" "▼")
135   ("z3" "△") ("z#" "▲")
136   ("z4" "□") ("z$" "■")
137   ("z5" "◇") ("z%" "◆")
138   ("z6" "☆") ("z^" "★")
139   ("z7" "◎") ("z&" "£")
140   ("z8" "¢") ("z*" "×")
141   ("z9" "♂") ("z(" "【")
142   ("z0" "♀") ("z)" "】")
143   ("z-" "〜") ("z_" "∴")
144   ("z=" "≠") ("z+" "±")
145   ("z\\" "\") ("z|" "‖")
146   ("z`" "´") ("z~" "¨")
147
148   ("zq" "《") ("zQ" "〈")
149   ("zw" "》") ("zW" "〉")
150   ("zr" "々") ("zR" "仝")
151   ("zt" "〆") ("zT" "§")
152   ("zp" "〒") ("zP" "↑")
153   ("z[" "『") ("z{" "〔")
154   ("z]" "』") ("z}" "〕")
155
156   ("zs" "ヽ") ("zS" "ヾ")
157   ("zd" "ゝ") ("zD" "ゞ")
158   ("zf" "〃") ("zF" "→")
159   ("zg" "‐") ("zG" "―")
160   ("zh" "←")
161   ("zj" "↓")
162   ("zk" "↑")
163   ("zl" "→")
164   ("z;" "゛") ("z:" "゜")
165   ("z\'" "‘") ("z\"" "“")
166
167   ("zx" ":-") ("zX" ":-)")
168   ("zc" "〇") ("zC" "℃")
169   ("zv" "※") ("zV" "÷")
170   ("zb" "°") ("zB" "←")
171   ("zn" "′") ("zN" "↓")
172   ("zm" "″") ("zM" "〓")
173   ("z," "‥") ("z<" "≦")
174   ("z." "…") ("z>" "≧")
175   ("z/" "・") ("z?" "∞"))
176
177  (hatsuon
178   ("n" "n"))
179
180  (sokuon
181   ("kk")
182   ("ss")
183   ("tt")
184   ("hh")
185   ("mm")
186   ("rr")
187   ("ll")
188   ("ww")
189   ("gg")
190   ("zz")
191   ("dd")
192   ("bb")
193   ("pp")
194   ("cc")
195   ("jj")
196   ("ff"))
197
198  (henkan
199   (" ")
200   ((Henkan)))
201
202  (kakutei
203   ((Return))
204   ((Linefeed)))
205
206  (backspace
207   ((BackSpace)))
208
209  (edit
210   ((Delete) (delete @+))
211   ((BackSpace) (delete @-))
212   ((Left) (move @-))
213   ((Right) (move @+)))
214
215  (henkan-edit
216   ((Left) (move @[))
217   ((Right) (move @]))
218   ((S-Left) (call libmimx-anthy resize t))
219   ((S-Right) (call libmimx-anthy resize nil)))
220
221  (change-candidate
222   ((C-A) (select @<))
223   ((C-P) (select @[))
224   ((C-B) (select @-))
225   ((Up) (select @-))
226   (" " (select @+))
227   ((C-F) (select @+))
228   ((Down) (select @+))
229   ((C-N) (select @]))
230   ((C-E) (select @>)))
231  )
232
233 (module
234  (libmimx-anthy convert resize change commit init fini))
235
236 (state
237  (init
238   "aあ"
239   (starter (pushback 1) (shift pre-henkan)))
240
241  (pre-henkan
242   (ordinary)
243   (alnum)
244   (symbol)
245   (hatsuon (shift hatsuon))
246   (sokuon (insert "っ") (pushback 1))
247   (henkan (call libmimx-anthy convert) (shift henkan))
248   (kakutei (shift init))
249   (backspace (pushback 1) (shift edit))
250   (nil (shift fail)))
251
252  (hatsuon
253   (hatsuon (delete @-) (delete @-) (insert "ん") (shift pre-henkan))
254   (nil (delete @-) (insert "ん") (shift pre-henkan)))
255
256  (henkan
257   "漢"
258   (t (set K @@) (sub K 1))
259   (henkan-edit)
260   (change-candidate (call libmimx-anthy change) (show) (shift henkan2))
261   (kakutei (call libmimx-anthy commit) (shift init))
262   (backspace (undo K))
263   (nil (call libmimx-anthy commit) (shift init)))
264
265  (henkan2
266   "漢"
267   (change-candidate (call libmimx-anthy change) (show))
268   (backspace (undo K))
269   (nil (hide) (shift henkan)))
270
271  (fail
272   (backspace (undo))
273   (starter (pushback 1) (shift pre-henkan))
274   (nil (shift edit)))
275
276  (edit
277   (edit (set C @0) (< C 0 ((shift init))))
278   (starter (pushback 1) (shift pre-henkan))
279   (henkan (call libmimx-anthy convert) (shift henkan))
280   (kakutei (shift init))))
281
282 ;; Local Variables:
283 ;; mode: lisp
284 ;; coding: utf-8
285 ;; End: