ª`µ¿é¤Jªk¼Ò²Õ: bimsphone
1. ²¤¶:
¥»¼Ò²Õ¬O±M¥Îªºª`µ¿é¤Jªk¼Ò²Õ¡Aª½±µ±Ä¥Î¤F libtabe pµe
http://libtabe.sourceforge.net/
©Ò¶}µoªº libtabe °µ¬°ª`µ²q¦r¤ÞÀº¡C¥¦¾Ö¦³Ãþ¦üª© xcin ªºµüµ¿é¤J¥\¯à¡A
¦ý¨ã¦³§ó·Ç½Tªº²q¦r¯à¤O¡A¬Û«H¹ï©óª`µ¿é¤Jªkªº¨Ï¥ÎªÌ¦Ó¨¥·|¬Oӫܦ³¥Îªº¿é¤J
¤u¨ã¡C
½Ðª`·N¥»¿é¤Jªk¼Ò²Õ¤£¦P©ó gen_inp ¼Ò²Õ¡A¥¦¤£¨Ï¥Î .cin ©Î .tab §@¬°¸ê®ÆÀÉ¡A
¦Ó¬O¨Ï¥Î tsi.db »P yin.db §@¬°¨ä¸ê®ÆÀÉ¡C
¥Ø«e¥»¼Ò²Õ¥i¤ä´©¨âºØ¿é¤Jªk: ¤@¬° bimsphone, §Y bims ª`µ¿é¤Jªk¡A±z¥i¥H¶i
¤@¨B¿ï¾Ü¬O§_¶}±Ò¦Û°Ê¿ï¦r¥\¯à¡AY¶}±Ò¡A«h¥¦¦b¦h«¦r¿ï¾Ü®É¡A´N¦³¦Û°Ê¿ï¦rªº
¯à¤O¡AÃþ¦ü¹L¥hªºµüµ¿é¤Jªk©Î¦ÛµM¿é¤Jªk¡CYÃö³¬¡A«h¬°¤@¯ëªºª`µ¿é¤Jªk¡A¦ý
»P gen_inp ªº phone.cin ¤£¦Pªº¬O¡A¥¦¥i¥HÅý±z¿ï¾Ü¤£¦PªºÁä½L¹ï¬M¡A¦P®É¹ï©ó
ª`µªº¿é¤J²ßºD¦³¸û¦nªº¸àÄÀ¡C
¥t¤@ºØ¿é¤Jªk¬° bimspinyin, §Y bims «÷µ¿é¤Jªk¡C»P gen_inp ªº pinyin.cin
¤£¦Pªº¬O¡A³o¸Ì¦h¤F¦h«¦r¦Û°Ê¿ï¦rªº¥\¯à¡A¥i¥HÅý«÷µ¿é¤J§ó«K±¶§Ö³t¡C
¥Ñ©ó¥»¼Ò²Õªº¤ÞÀº: libtabe, ¨ä¦b³]p¤§ªì¬O¥H¡uµ¡v¾É¦Vªº¡A¦Ó¥B¨ä¸ê®ÆÀɪº
¤º®e¤S¯S§O¥H¥xÆW¦a°Ïªº°ê»yµoµ¬°¼Ð·Ç¡A¬G¨Æ¹ê¤W¥¦¥i¯à¥u¯S§O¾A¥Î©ó¥xÆW¦a°Ï
ªº¨Ï¥ÎªÌ¡C¹ï©ó¨ä¥L¦a°Ïªº¨Ï¥ÎªÌ¡A¥Ø«e¨S¦³¤ä´©¡A¤]³\¥¼¨Ó·|¦³©Ò§ï¶i¡C
2. ³]©w:
±z¥un¦b xcin ªº rcfile ¤¤¥[¤J¦p¤U´X¦æ§Y¥i:
===========================================================================
(define bimsphone
'((MODULE bimsphone)
(SETKEY 6)))
===========================================================================
¨ä¤¤:
a. "define" ¤§«á "bimsphone" ¬O¿é¤Jªk¦W¡C¥»¼Ò²Õ¥u¯à±µ¨ü "bimsphone" ³oÓ
¿é¤Jªk¦W¡C
b. SETKEY: «ü©w¥»¿é¤Jªkªº±Ò°ÊÁä¡C¤W¨Ò§Y¬°: ctrl+alt+6 ¡C
c. MODULE: «ü©w¿é¤Jªk¼Ò²Õ¦W¡C¦b¦¹¤@©wn¶ñ¤J "bimsphone" ¡C
°£¦¹¤§¥~¡A±z¥i¥H¶·³]©w¥H¤U´XÓ¿ï¶µ:
d. N_SELECTION_KEY: ³]©w¿ï«hÁäÓ¼Æ: ¨ä¼Æ¦r½d³ò¥²¶·¬O 5 ¨ì 10¡A¹w³]¬O 9¡C
e. SELECTION_KEYS: ³]©w¿ï¾ÜÁä¦Cªí:
0 ¨Ï¥Î 1234567890 ¬°¿ï¾ÜÁä
1 ¨Ï¥Î asdfghjkl; ¬°¿ï¾ÜÁä
¹w³]¬O 0¡C
f. PAGE_KEYS: ³]©w¦h«¦r (µü) ¿ï¾Ü®Éªº´«¶Áä:
1. ¨Ï¥Î < Á䩹«e±²¶¡A > Á䩹«á±²¶¡C
2. ¨Ï¥Î , Á䩹«e±²¶¡A . Á䩹«á±²¶¡C
4. ¨Ï¥Î¥ª¤è¦VÁ䩹«e±²¶¡A¥k¤è¦VÁ䩹«á±²¶¡C
Y±z·Qn½Æ¿ï¡A¥un±N¤Wzªº¼ÆÈ¥ôùزզX¬Û¥[§Y¥i¡CY±z³]¬° 0 ®É¡A«h¥u
¦³ space Áä¥i¥H©¹«á±²¶¡C¹w³]¬° 4¡C
g. QPHRASE_MODE: ³]©w modifier escape mode, ¸Ô¨£ im_comm ¤@¤åªº»¡©ú¡C
©³¤U¨âÓ¬O bimsphone ¿é¤Jªkªº±MÄݳ]©w:
h. AUTO_SELECTION: ³]©w¬O§_±Ò°Ê¦Û°Ê¿ï¦r¼Ò¦¡¡C
i. KEYMAP: ³]©wÁä½L¹ï¬M:
0 ¬°¹s³üÁä½L
1 ¬°Ê¤ÑÁä½L
2 ¬°Ê¤Ñ 26 Áä½L
3 ¬°³\¤óÁä½L
¹w³]¬O¹s³üÁä½L¡C
©³¤U³oÓ¬O bimspinyin ¿é¤JªkªºÂàÄݳ]©w (¦b¦¹¿é¤Jªk¤¤¡A¦Û°Ê¿ï¦r¼Ò¦¡¥Ã»·¬O
¶}±Òªº¡A¦Ó¥BÁä½L¹ï¬M¥Ã»·¬O¹s³üÁä½L¡A¨ä¤¤Áä½L¹ï¬M¥u¦³¦b¼Ò²Õ¤º³¡¹B§@®É¤~·|
°Ñ¦Ò¨ì):
j. PINPHO_MAP: «ü©w«÷µ½X»Pª`µ½Xªí·Óªí¡C
©³¤Uªº³]©w¬O·í AUTO_SELECTION ¶}±Ò®É¤~·|¦³§@¥Î:
k. TSI_FNAME: µü®w¸ê®ÆÀÉÀɦW¡A±z¥i¥Hª½±µ³]¸ÓÀɮתºµ´¹ï¸ô®|¡CY±z¥u¦³«ü©w
ÀɦW¡A«h xcin ·|¨ì $XCIN_DIR ©³¤U·j´M¡C
l. YIN_FNAME: µ®w¸ê®ÆÀÉÀɦW¡A±z¥i¥Hª½±µ³]¸ÓÀɮתºµ´¹ï¸ô®|¡CY±z¥u¦³«ü©w
ÀɦW¡A«h xcin ·|¨ì $XCIN_DIR ©³¤U·j´M¡C
m. SPACE_SELECTION: ³]©w¨Ï¥ÎªÅ¥ÕÁ䪽±µ¿ï¦r¡A³o®ÉªÅ¥ÕÁä±N¤£¯à¥Î¨Ó¤W¦r¡An
¤W¦r®Én¨Ï¥Î return Áä¡C¹w³]¬° NO¡C
n. PHRASE_SELECTION: ¬O§_¶}±Ò¦h«¿ïµü¥\¯à¡CY³]¬° YES ®É¡A«h±z²Ä¤@¦¸«ö
Up Áä®É¡AY¦³µü¥i¿ï¾Ü¿ïµü¡A§_«h¿ï¦r¡CY¦³µü¥i¿ï¡A¥B¥Ø«e¬O¦b¿ïµü¦C
ªí®É¡A¦A«ö¤@¦¸ Up Áä¥i¥H¤Á´«¨ì¿ï¦r¦Cªí¡A¦A«ö¤@¦¸ Up Áä¥i¥H¤Á´«¨ì¿ï
µü¦Cªí¡A¦p¦¹´`Àô¡CY³]¬° NO ®É¡A«h«ö Up Áä¥u¯à¶i¤J¿ï¦r¦Cªí¡C¨ä¹w³]
Ȭ° YES¡C
o. N_SELECTION_PHR: ³]©w¿ïµüªºÓ¼Æ: ¨ä¤W¤£±o¶W¹L NSELKEY ªºÈ¡C
©³¤U³oÓ¥u¦³¦b AUTO_SELECTION Ãö³¬®É¤~¦³®Ä:
p. AUTO_UPCHAR: ¬O§_°_°Ê¦Û°Ê¤W¦r¥\¯à¡A¹w³]Ȭ° NO¡C¦¹¿ï¶µ¥u¦³¦b
AUTO_SELECTION Ãö³¬®É¤~¦³®Ä¡C
3. ¥þ°ì³]©w:
¥Ñ©ó¥»¼Ò²Õªº³]©w¶µ¥Ø¬Û·í¦h¡A¦]¦¹·í±z»Ýn¬°³\¦h¿é¤Jªk¶i¦æ³]©w®É¡A¥i¯à·|
«Ü¤£¤è«K¡C¦AªÌ¡A«Ü¦h¤H¦b¿é¤Jªkªº¨Ï¥Î²ßºD¦h¥b¬O«Ü©T©wªº¡A¬G¦U¿é¤Jªk©Ò»Ý
ªº³]©w¥i¯à¤j³¡¤À³£¬Û¦P¡A¥u¦³¤Ö³¡¤À¤£¤@¼Ë¡C¦b³o±¡ªp¤U¡AY¨Ï¥Î¿é¤Jªkªº¥þ
°ì³]©w¡A«h¥i¥H¤j¤j´î¤Æ xcinrc ªº¤º®e¡C
¥»¼Ò²Õªº¥þ°ì³]©w¤è¦¡¦p¤U:
===========================================================================
(define bimsphone_default
'((cmd1 value1)
(.... ......)))
===========================================================================
¤]´N¬O»¡¡A¥un±N¤WÀYªº inpname (¿é¤Jªk¦W) §ï¦¨ bimsphone_default §Y¥i¡A
¨ä¾lªº³]©w¶µ»P¤WÀY©Ò¦Cªº§¹¥þ¬Û¦P¡C³q±`§ÚÌ·|¦b³o¥þ°ì³]©w¤¤³]¦n©Ò¦³¶µ¥Ø¡A
°µ¬°©Ò¦³±Ä¥Î bimsphone ¼Ò²Õªº¿é¤Jªk¹w³]È¡A¦Ó¦U§Oªº¿é¤Jªk¥un°w¹ï»P³o¸Ì
ªº¹w³]Ȥ£¦Pªº³¡¤À¶i¦æ³]©w§Y¥i¡C
4. ½d¨Ò:
º¥ý§ÚÌ¥ý°µ¤@Ó¿é¤Jªkªº¥þ°ì³]©w¡C³oÓ¥þ°ì³]©w»P locale Àô¹ÒµLÃö¡A¬G¹ï©ó
¥ô¦ó locale ³£¥i¾A¥Î:
(define bimsphone_default
'((N_SELECTION_KEY 9)
(SELECTION_KEYS 0) ; 0: "1234567890", 1: "asdfgjkl;"
(PAGE_KEYS 5) ; 1:<> 2:,. 4:(Rt)(Lt)
(QPHRASE_MODE 1) ; 1: shift, 2: ctrl, 4: alt
;
; This is only valid for "bimsphone*" IM name.
(AUTO_SELECTION YES)
(KEYMAP 0) ; 0: zozy, 1: et, 2: et26, 3: hsu
;
; This is only valid for "bimspinyin*" IM name.
(PINPHO_MAP "bims_pinyin")
;
; The following has effect only when AUTO_SELECTION is YES
(TSI_FNAME "tsi.db")
(YIN_FNAME "yin.db")
(SPACE_SELECTION NO)
(PHRASE_SELECTION YES)
(N_SELECTION_PHR 4)
;
; The following has effect only when AUTO_SELECTION is NO
(AUTO_UPCHAR YES)))
±µ¤U¨Ó¬O¦U¿é¤Jªkªº²Ó³¡³]©w¡C¹ï©ó¨ã³Æ¦Û°Ê¿ï¦rªºª`µ¿é¤Jªk¡A«h¥H¤Wªº¹w³]¿ï
¶µ¤£»ÝÃB¥~×§ï¡A§Y¥i¨Ï¥Î:
(define bimsphone@big5
'((SETKEY 6)
(MODULE "bimsphone")))
¦pªGnÃö±¼¦Û°Ê¿ï¦r¥\¯à¡A¦Ó¥Bn»P bimsphone ¿é¤Jªk¦@¦sªº¸Ü¡A«h±z¥²¶·¨Ï¥Î¥t
¤@Ó¿é¤Jªk¦W¡A¦Ó¥B¥²¶·n¥H bimsphone ¬°¶}ÀY¡A¨Ò¦p:
(define bimsphoneS@big5
'((SETKEY 7)
(AUTO_SELECTION "YES")
(MODULE "bimsphone")))
¦pªGn¨Ï¥Î«÷µ¿é¤J¡A«h¿é¤Jªk¦W¥²¶·n¥H bimspinyin ¬°¶}ÀY:
(define bimspinyin@big5
'((SETKEY 5)
(MODULE "bimsphone")))
5. ¨Ï¥Î¤è¦¡:
·í±z¤Á´«¦Ü bimsphone ¶i¦æª`µ¿é¤J®É¡A±z©Ò¿é¤Jªº¤¤¤å¦r³£·|¼È¦s¦b xcin ªº
µøµ¡¤¤¡Aª½¨ìµøµ¡¤wº¡¡A©ÎªÌ±z«ö¤U¤W¦rÁä (¦p space ©Î return Áä) ®É¦r¤~·|
°e©¹ XIM client µøµ¡¡CY±z¦b¿é¤J¤¤³~¡A bimsphone ²q¿ù¦r®É¡A±z¥i¥H«ö¥ª¥k
Áä¨Ï´å¼Ð¦b xcin µøµ¡¤¤²¾°Ê¡A«Ý´å¼Ð²¾¨ì¿ù»~ªº¦r¤W®É¡A«ö¡u¤W¡vÁä§Y¥i¦C¥X
¦Pµ¦r (µü) ªº¿ï³æ¦Cªí¡A³o®É±z¥i¥H¥Î¿ï¦r«¬¿ï¾Ü¥¿½Tªº¦r¡A©Î¥Î < > , . µ¥
Á䩹«e©Î©¹«á½¶¡C
Y±z¦b¿é¤J¤¤³~Á{®É»Ýn¿é¤J^¤å®É¡A±z¥i¥H«ö¤U CapsLock Áä¡A«h³o®É±zªº¿é
¤J³£·|ª½±µ¥H^¤å¿é¥X¡C½Ðª`·N¦pªG¦¹®É¦b xcin µøµ¡¤¤¤´¦³¤¤¤å¦r®É¡A¿é¥Xªº
^¤å·|³s¦P xcin µøµ¡ªº¤¤¤å¦r¤@°_°e¥X¡C
¥Ñ©ó bimsphone ¾Ö¦³©¹«e×¥¿ªº¥\¯à¡A¦]¦¹¦pªG±z¥´¦r¤¤³~µo²{ bimsphone ²q¿ù
¦r®É¡A¤£¥²«æµÛ¦^ÀY§ï¦r¡A±z¥i¥H«ùÄò¦A¥´¤@¬q¦r¡A bimsphone ¥i¥H®Ú¾Ú±zªº»y
·N¾A«×¦a©¹¦^×¥¿¿ù»~¡Aª½¨ì±z¥´§¹¤@¬q¥y¤l«á (¥B³o¬q¥y¤l¤´¯d¦b xcin µøµ¡®É)¡A
Yµo²{ÁÙ¬O¦³¿ù¦r¡A¦A¥Î¥ª¥kÁä¦^¥h×§ï¡A¦p¦¹¥i¥H¥[§Ö¥´¦rªº³t«×¡C
Y xcin µøµ¡¤¤¦³¤¤¤å¦r®É¡A±zªº¦V¤èÁä¥u¯à¥Î¨Ó²¾°Ê xcin µøµ¡ªº´å¼Ð¡A©ÎªÌ
¶i¤J¦h°Ê¿ï¦r (µü) ªº¼Ò¦¡¡A¦Ó¤£¯à¥Î¨Ó²¾°Ê XIM client ¤Wªº´å¼Ð¡CY±z§Æ±æ
²¾°Ê XIM client ¤Wªº´å¼Ð¡A±z¥²¶·¥ý±N xcin µøµ¡¤¤ªº¦r°e¥X©Î²M°£¡A©ÎªÌ¡A
±z¤]¥i¥H«ö¤U CapsLock Áä¡A³o®É¤è¦VÁä´N¥i¥H¥Î¨Ó²¾°Ê XIM client ªº´å¼Ð¡A
¦ý¤£¼vÅT xcin µøµ¡¤¤ªº¦r (¦r¤]¤£·|°e¥X¡A°£«D±z³o®É¥´¤J^¤å¦r)¡C
T.H.Hsieh