@JkҲ: gen_inp

1. ²:

   լO@ʿJkqμҲաAiΨӮMΩҦ@` .cin Jk
   p phone(`)Barray30(C 30)Bcj(ܾe)Bpinyin() .... C
   LJk (p: ar40 (C 40) B Boshiamy (F) .... )A
   unzǳƦn@ .cin  ( Cin @媺)AgL cin2tab sĶ
   AYiΦҲծMΡC

   Ҳդwɥi䴩 xcin-2.3.X ɥN vvvv SޤJҦs\AH xcin
   Kw֦\A]AWrBֳtBB䲾Ҧ (Y
   vvvv SҤޤJ %Bosh mode) .... AiժѼƬ۷hCPɥ]i
   H䴩@rhXAӸ`Ш doc/Cin @媺C

   Mun@ phone.cin YiΥҲծMά`JkAѩ󥻼Ҳճ]
   pWSIAiy`Jɤ@ǭAҦp̨ϥΪ̪ϥβߺDPA`
   Jkݭn䴩p\LBʤLPLCLJk
   Lo˪ݭnAG gen_inp ä@\C

   ަpAYϥΪ̦b`JɤݭnWz\A¥iHΥҲծM
   `JkӨϥΡC


2. ]w:

   zunb xcin  rcfile [JpUXYi:

===========================================================================
(define inpname
        '((MODULE       gen_inp)
          (SETKEY	1)))
===========================================================================

   䤤:

   a. "inpname" OJkWCҲեiH󪺿JkWAӨJk
      Y "inpname.tab"C

   b. SETKEY: wJkҰCWҧY: ctrl+alt+1 C

   c. MODULE: wJkҲզWCb@wnJ "gen_inp" Cѩ@Ө
	Ҳճ|]w]JkҲ (DEFAULT_IM_MODULE), boرpU
	]ﶵiC

   d. INP_CNAME: wJkW١Co̪W٦uWvPu²Wv
	ϧOCuWvq`Oܦb xcin Ĥ@DAӡu²Wvq`O
	ܦb xcin ĤGDA]O xcin Ĥ@DjCbw]pUA
	@ӿJku²WvOHuWvĤ@ӦrӥNAҦpu`v
	²WYu`vCpGϥΪ̤wo˪w]AhiHzLﶵӳ]
	wA覡pU:

	pG INP_CNAME rꤤS "%%" ܡAhӦrYuWvA
	u²WvNOWĤ@ӦrCϤAh "%%" euWvAh
	u²WvCҦp:

		(INP_CNAME	"C30")	; W: C30, ²W: 
		(INP_CNAME	"C30%%30") ; W: C30, ²W: 30

   e. AUTO_COMPOSE: ۰ʲզrܡCY yes, hCzUA xcin 
	|ܥثezҿJLXզrGC

   f. AUTO_UPCHAR: ۰ʤWrҦCY no, hzw쭫ƦrܮɡAH
	JkҴѪӿrCY yes, hzFiHοrH~A
	ziH@ӡuDvĤ@ӦrC

   g. AUTO_FULLUP: t~AzbVӿJk̤jrƮ (pܾeJk
	jrƬO 5 Ӧr)AYoɨSƦrAh xcin |NӦrXA
	ݭnAh@ space C

   h. SPACE_AUTOUP: ť۰ʤWrҦAﶵub AUTO_UPCHAR  yes 
	~}ҡCY] no, zbƦrܮɡAzLkΪť䪽
	Ĥ@ӦrCY yes hϤCﶵ]wP_PzJkƦrƦ
	CpGzJkƦr۷hAb@CXӡAhz
	ݭnQ space 䴫U@AoɱzN\CYzJk
	Ʀr֡AҦƦrpb@CAhziHҼ{}ﶵ
	H[ֿJtסC

   i. SELKEY_SHIFT: 䲾ҦAﶵub AUTO_UPCHAR  yes ɤ~
	}ҡC@뱡p (ﶵ] no )AĤ@ӿĤ@ӭƦrA
	GӿĤGӭƦrAHCYNﶵ] yes ɡAh
	@ӿ|ĤGӭƦrAĤGӿ|ĤTӭƦrAl
	HCӲĤ@ӭƦrh|HuWrvw]Ĥ@Ӫ覡XC
	ﶵ@ӦnBOApGƦrhܡAC@ҦCXƦrƥiHh@
	 (]䩹Ჾ@) AO_}ҺݵӤHϥβߺDөwC

   j. SPACE_IGNORE: rڪť䩿ҦAﶵub AUTO_FULLUP  yes 
	~}ҡCҿסurڡvYzҺVJƤwFӿJk̤jrơC
	Ѧ۰ʤWr\Aڭ̥iAboرpUYLƦrX{ɡA xcin |
	NӦrXAݭnAh@ӪťCi|ϥΪ̷|ߺDWM
	h@ӪťAoɭԡApGﶵ no ɡA xcin |Nhť
	XA]z|Xr|h@ӪťաCY] yes ɡA
	h xcin |NťlAS@ΡC

   k. SPACE_RESET: Y] yes ɡAhzJ~ɡAiH@U space ۰
	MAHsJC

   l. AUTO_RESET: Y] yes ɡAhzJ~ɡA xcin |W۰ʲMAH
	KsJC

   m. WILD_ENABLE: sr䶰ҦCYﶵ] yes, hz{ɧѰOYӦr
	JkɡAziHbzOorX[ "*" AҦp "abs*", h xcin
	|CXH "abs" X}lҦrѱzDC

   n. SINMD_IN_LINE1: Y] yes ɡAh쥻ܦb xcin kUrX
	| xcin Ĥ@ܡCﶵ}ҥubϥ xcin Ĥ@D
	ɤ~|ĪGC

   o. END_KEY: ҦAﶵubӿJkwq endkey ɤ~@ (
	 Cin @媺) Cҿת endkey ӿJkAY]
	 yes, hCzVJ@өwq endkey rɡAxcin |WN
	rXAݭnAB~C

   p. QPHRASE_MODE: ]w modifier escape mode CԨ im_comm @媺C

   q. DISABLE_SEL_LIST: Ψӳ]wbUY䤧AArɡAhr
	KhFr\AP@JLC\OwC 30 Jk
	SݨDӳ]pCbC 30 JkзǤAr䬰 "1234567890",
	ڭ̿J "w" AJ "0"  "9" @ɡAhoɪr
	@몺JAӳ̫᪺GOܥXSŸCCbpUA
	]wﶵ:

		(DISABLE_SEL_LIST	"w")

	h xcin bzJF "w", ۦbJ "0"  "1" @ɡAh
	N|ܥXSŸ (wqb array30.cin )AӤ|N̸
	rFC

	z]iH]whӳo@rAҦppGz]wﶵ "wt" ɡAh
	zbJ "w" Ϊ "t"AۦAJrɡA@ΦPWAr|Q
	@몺rC

	Yzݭn\AiHNﶵ] "NONE", Ϊ̰ܱNﶵ۱z
	xcinrc ɤYiC

   r. KEYSTROKE_REMAP: ﶵiΨӳ]wr䭫s\C榡pU:

		(KEYSTROKE_REMAP	"<key1>:<char1>;<key2>:<char2>;....")

	hܷzU <key1> AU space WrɡAxcin |쥻b .cin
	ɤҩwq <key1> ҥNrAӧH <char1> rӤWrCPz <key2>
	|H <char2> rӤWrC\OwC 30 JkݨDӳ]pC
	pGN] "NONE" ɫh\C

   s. BEEP_WRONG: iHO yes  no, ONJ~, oXu͡v@nRC

   t. BEEP_DUPCHAR: Y] yes ɡAhzJ쭫ƦrɡA xcin |oXu͡v@
	nA_hRC

3. ]w:

   ѩ󥻼Ҳժ]wج۷hA]zݭn\hJki]wɡAi|
   ܤKCA̡AܦhHbJkϥβߺDhbOܩTwAGUJkһ
   ]wijۦPAuֳ@ˡCbopUAYϥοJk
   ]wAhiHjj xcinrc eC

   Ҳժ]w覡pU:

===========================================================================
(define gen_inp_default
	'((cmd1		value1)
	  (....		......)))
===========================================================================

   ]NOAunNWY inpname (JkW) 令 gen_inp_default YiA
   l]wPWYҦCۦPCq`ڭ̷|bo]w]nҦءA
   Ҧĥ gen_inp ҲժJkw]ȡAӦUOJkunwPo̪
   w]ȤPi]wYiC


4. d:

   ڭ̥@ӿJk]wCoӥ]wP locale ҵLAG
    locale iA:

(define gen_inp_default
        '((AUTO_COMPOSE         YES)
          (AUTO_UPCHAR          YES)
          (AUTO_FULLUP          NO)
          (SPACE_AUTOUP         NO)
          (SELKEY_SHIFT         NO)
          (SPACE_IGNORE         NO)
          (SPACE_RESET          YES)
          (AUTO_RESET           NO)
          (WILD_ENABLE          YES)
          (SINMD_IN_LINE1       NO)
          (END_KEY              NO)
          (QPHRASE_MODE         0)      ; 1: shift, 2: ctrl, 4: alt
          (DISABLE_SEL_LIST     "NONE")
          (KEYSTROKE_REMAP      "NONE")
          (BEEP_WRONG           YES)
          (BEEP_DUPCHAR         NO)))

   UӬOUJkӳ]wCo̥uHXӸSJkҡAѫĳ]
   wCYO`JkAѩڭ̧ƱbGnBTnΥ|nɴN۰ʤWrAG
   ڭ̻ݭn} END_KEY \CPɧڭ̤]Ʊ楦bƦrﶵɤ]oXu͡vnAh:

(define phone@big5
        '((SETKEY               3)
          (END_KEY              YES)
          (BEEP_DUPCHAR         YES)))

   YOC 30 JkAhڭ̻ݭn DISABLE_SEL_LIST P KEYSTROKE_REMAP o
   ӥ\A䤤e̥H w P򪺿r (Y 123456789) ӿJSŸ (
    xcin-2.5/cin/big5/array30.cin), ӫ̥H t ӪX "" r:

(define array30@big5
        '((SETKEY               8)
          (DISABLE_SEL_LIST     "w")
          (KEYSTROKE_REMAP      "t:0xaaba;")))

   ܩLJkA覡ۦPAϥΪ̥iHۦѷӳ]wC


5. JkC:

   HUOثe xcin t gen_inp JkҲժJkCAPɤ]CX@
   ǯSJkĳ xcinrc ﶵC

   big5/:  (xWa)
        1. array30.cin:         C 30 JkC
				(DISABLE_SEL_LIST "w")
				(KEYSTROKE_REMAP "t:0xaaba;")

        2. cj.cin:              ܾeJkC

        3. phone.cin:           `JkC
				(END_KEY "YES")

        4. pinyin.cin:          JkC
				(END_KEY "YES")

        5. simplex.cin:         ²JkC

        6. jyutping.cin:        fyJkC
				(END_KEY "YES")

        7. jyutping0.cin:       fyJk (S)C

   big5hkscs/:  (a)
        1. cj.tab:              ܾeJkC

   gb2312/:  (ja)
        1. jtcj_gb.tab:         ܾeJkC

        2. pinyin.tab:          JkC

        3. phonegb2.tab:        `Jk (c`JA²rX)C
				(END_KEY "YES")

        4. shuangpin.tab:       JkC

        5. wubizixing.tab:      JkC


T.H.Hsieh
