一般輸入法模組: gen_inp

1. 簡介:

   本文組是一般性輸入法通用模組，它可用來套用所有一般常見的 .cin 輸入法表
   格如 phone (注音) 、 array30 (行列 30) 、 cj (倉頡) 、 pinyin (拼音)，
   對於其他的輸入法 (如: ar40 (行列 40) 、 Boshiamy (嘸蝦米) .... 等等)，
   只要您準備好一個 .cin 表格檔 (見 Cin 一文的說明)，經過 cin2tab 的編譯
   之後，即可用此模組套用。

   本模組已盡可能支援 xcin-2.3.X 時代 vvvv 兄引入的所有新功能，以及 xcin
   早期便已擁有的功能，包括先上字、快速鍵、結束鍵、選擇鍵移位模式 (即
   vvvv 兄所引入的 %Bosh mode) .... 等等，可調的參數相當多。同時它也可
   以支援一字多碼，相關細節請見 doc/Cin 一文的說明。

   雖然只要準備好一個 phone.cin 即可用本模組套用為注音輸入法，但由於本模
   組設計上的特點，可能造成注音輸入時一些限制，包括:

   a. 依使用者的使用習慣不同，注音輸入法需要支援如許氏鍵盤、倚天鍵盤等不
      同的鍵盤對應。但其他的輸入法並無這樣的需要，故 gen_inp 並不實作此
      功能。

   b. 未來 gen_inp 會加入簡單的自動選字功能，但由於注音輸入法的重複字太
      多，故此自動選字功能可能不夠實用。

   儘管如此，若使用者在做注音輸入時不需要上述功能，依舊可以用本模組套用
   注音輸入法來使用。


2. 設定:

   您只要在 xcin 的 rcfile 中加入如下幾行即可:

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

   其中:

   a. "inpname" 是輸入法名。本模組可以接受任何的輸入法名，而其輸入法表格檔
      即為 "inpname.tab"。

   b. SETKEY: 指定本輸入法的啟動鍵。上例即為: ctrl+alt+1 。

   c. MODULE: 指定輸入法模組名。在此一定要填入 "gen_inp" 。但由於一般而言
	本模組都會設為預設的輸入法模組 (DEFAULT_IM_MODULE), 在這種情況下
	不設此選項亦可。

   d. INP_CNAME: 指定本輸入法的中文名稱。

   e. AUTO_COMPOSE: 自動組字顯示。若為 yes, 則每當您按下任何鍵， xcin 都
	會顯示目前您所輸入的鍵盤碼的組字結果。

   f. AUTO_UPCHAR: 自動上字模式。若為 no, 則當您預到重複字選擇時，必須以該
	輸入法所提供的選擇鍵來選字。若為 yes, 則您除了可以用選擇鍵選字以外，
	您可以按任何一個「非選擇鍵」直接選取第一個字。

   g. AUTO_FULLUP: 另外，當您在敲滿該輸入法的最大字鍵數時 (如倉頡輸入法的最
	大字鍵數是 5 個字鍵)，若這時沒有重複字，則 xcin 會直接將該字輸出，
	不需要再多按一個 space 鍵。

   h. SPACE_AUTOUP: 空白鍵自動上字模式，本選項只有在 AUTO_UPCHAR 為 yes 時
	才能開啟。若設為 no, 當您在做重複字選擇時，您無法用空白鍵直接選取
	第一個字。若為 yes 則反之。此選項設定與否與您的輸入法的重複字數有
	關。如果您的輸入法重複字相當多，往往不能在一頁中全部列出來，則您往
	往需要利用 space 鍵換下一頁，這時您必須將此功能關閉。若您的輸入法重
	複字少，所有的重複字情況都能在一頁之內列完，則您可以考慮打開此選項
	以加快輸入的速度。

   i. SELKEY_SHIFT: 選擇鍵移位模式，本選項只有在 AUTO_UPCHAR 為 yes 時才能
	開啟。一般情況 (本選項設為 no 時)，第一個選擇鍵對應第一個重複字，第
	二個選擇鍵對應第二個重複字，以此類推。但若將本選項設為 yes 時，則第
	一個選擇鍵會對應第二個重複字，第二個選擇鍵會對應第三個重複字，其餘
	以此類推。而第一個重複字則會以「先上字」預設選第一個的方式輸出。此
	選項的一個好處是，如果重複字多的話，每一頁所列出的重複字數可以多一
	個 (因為選擇鍵往後移一位) ，但是否開啟端視個人使用習慣而定。

   j. SPACE_IGNORE: 滿字根空白鍵忽略模式，本選項只有在 AUTO_FULLUP 為 yes 時
	才能開啟。所謂「滿字根」即您所敲入的鍵數已達該輸入法的最大字鍵數。
	由自動上字功能，我們可知，在這種情況下若無重複字出現時， xcin 會直
	接將該字輸出，不需要再多打一個空白鍵。但可能會有使用者會習慣上仍然
	多打一個空白鍵，這時候，如果此選項為 no 時， xcin 會將多打的空白鍵
	直接輸出，因此您會見到剛剛輸出的字後會多一個空白。若設為 yes 時，
	則 xcin 會將此空白鍵吸收，讓它沒有作用。

   k. WILD_ENABLE: 廣字鍵集模式。若本選項設為 yes, 則當您臨時忘記某個字的
	輸入法時，您可以在您記得的字鍵碼之後加個 "*" ，例如 "abs*", 則 xcin
	會列出以 "abs" 碼開始所有的字供您挑選。

   l. END_KEY: 結束鍵模式，本選項只有在該輸入法有定義 endkey 時才有作用。
	所謂的 endkey 指該輸入法中結束的自鍵，若設此選項為 yes, 則每次您
	敲入任何一個定義為 endkey 的字鍵時， xcin 會馬上將此字輸出，不需
	要再按額外的按鍵。

   m. BEEP_WRONG: 可以是 yes 或 no, 分別代表輸入錯誤時, 發出「嗶」一聲或靜音。

   n. BEEP_DUPCHAR: 若設為 yes 時，則當您遇到重複字時， xcin 會發出「嗶」一
	聲，否則為靜音。

   o. SINMD_IN_LINE1: 若設為 yes 時，則原本顯示在 xcin 視窗右下角的字鍵碼
	會移到 xcin 視窗的第一行來顯示。

   p. SPACE_RESET: 若設為 yes 時，則當您輸入錯誤時，可以按一下 space 鍵自動
	清除，以重新輸入。

   q. AUTO_RESET: 若設為 yes 時，則當您輸入錯誤時， xcin 會馬上自動清除，以
	便重新輸入。

   r. QPHRASE_MODE: 設定 modifier escape mode 。詳見 im_comm 一文的說明。

   s. DISABLE_SEL_LIST: 用來設定在按下某個鍵之後，再按選字鍵時，則此選字
	鍵便失去了選字功能，與一般輸入鍵無異。此功能是針對行列 30 輸入法
	的特殊需求而設計。在行列 30 輸入法的標準中，選字鍵為 "1234567890",
	但當我們輸入 "w" 再輸入 "0" 至 "9" 任何一鍵時，則這時的選字鍵應視
	為一般的輸入鍵，而最後的結果是顯示出特殊符號列表。在此情況下，必
	須設定此選項為:

		(DISABLE_SEL_LIST	"w")

	則 xcin 在見到您輸入了 "w", 接著在輸入 "0" 至 "1" 的任一鍵時，則
	就會直接顯示出特殊符號表 (定義在 array30.cin 中)，而不會將它們解
	釋為選字鍵了。

	您也可以設定多個這一類的字鍵，例如如果您設定此選項為 "wt" 時，則
	當您在輸入 "w" 或者 "t"，接著再輸入選字鍵時，作用同上，選字鍵會被
	視為一般的字鍵。

	若您不需要此功能，可以將此選項設為 "NONE", 或者乾脆將此選項自您的
	xcinrc 檔中移除即可。



T.H.Hsieh  
