自己當倉頡:打造自己的輸入法

肇始

先前在網路上閒逛時,找到一個以倉頡輸入法為基礎的「鯨魚輸入法」,其基本規則是把常用的兩個字的詞彙,取每個字的頭、尾碼來組成四個字的字碼,「例如」這兩個字以倉頡取字時要輸入:

OMNN (例) VR (如)

不含組字的空白鍵的話共需6碼(含空白的話是8碼),若使用鯨魚輸入法則只需4碼(含空白是5碼):

ON (例) VR (如)

這種由拆字變成組詞的方法可以快速提昇輸入文字的效率,需要的碼越多則節省的按鍵越多,而且對於已經熟悉倉頡輸入法的人來說,不用學習馬上就會使用,可以立即享受其飛快的速度。但是,鯨魚輸入法已是多年前的產品,據我所知也不再有人維護,輸入法中的一些錯漏也無從增補或修改,這些問題頗令人傷腦筋。

剛巧侯捷大師公布了他使用Windows 2000的通用輸入法的一些步驟與技巧,令我興起嘗試自行仿造鯨魚輸入法規則來建立自己輸入法的念頭,目標當然是設置更符合自己使用習慣的輸入法,進而能在寫文章時有更高的產能。

通用輸入法編輯工具(Uimetool,Universal Input Method Editor tool)

通用輸入法在Windows 2000以上的視窗系統是透過Uimetool.exe這支執行檔來運作的,最簡單的方法是由「程式集→附屬應用程式→通用輸入法編輯工具」啟動,或直接執行"C:\Program Files\Windows NT\Accessories\Uimetool.exe"。

要執行Uimetool之前要先準備好「對照表」,此對照表主要是用來建立字根與其組字結果(詞組)的關聯,字根與詞組之間至少空一個空白,最後再以換行符號結尾;若一個字根有數個詞組,詞組間以空白隔開,則在輸入時會出現選字視窗供你挑選,例如:

A 日 曰

ABJJ 暉 暈

為了方便輸入,我們可以把自己覺得最快的字根拿來使用(用英文單字最方便了):

WHAT 什麼

HOW 怎樣

PC 電腦 個人電腦計算機

依此方式將對照表建立起來,就能讓Uimetool為您產生您自己的輸入法了。哇!重頭建起至少一萬三千個字根/記組,那可是個超大工程呢。別擔心,完整的第五代倉頡輸入法對照表可以由倉頡之父朱邦復先生的「朱邦復工作室」網站下載對照表http://www.cbflabs.com/tec/cbflabs/cjworld/cj5.zip

下載回來的cj5.zip解開後,開啟對照表cj5.txt看看,咦?第一行好像格式和上面說的不太一樣,仔細觀察,/S A後面不正好是倉頡的拆字字根嗎?

/S A日月金木水火土竹戈十大中一弓人心手口尸廿山女田難卜重

字根設定列

/S A這行就是用來設定您的輸入法使用的字根,也就是在拆字時顯示出來的符號

字根設定列的格式必須以/S開頭:

/S 一或多個半形空白 半形按 拆字時顯示出來的全形字根

倉頡碼的「A」鍵顯示的字根是「日」,因此設定成:

/S A日

注音輸入法的「A」鍵顯示的字根是「ㄇ」,因此設定成:

/S Aㄇ

為了簡便我們可以在一行內依其ASCII碼順序連續指定字根,例如:

/S A日月金木水火土竹戈十大中一弓人心手口尸廿山女田難卜重

以上由「日」開始恰為ABCD...一直到WXYZ共26個連續的英文字母,與倉頡在鍵盤上的順序對應。

我們也可以將經常使用的全形符號(如逗點,句點,頓點等)拿來當做字根,以方便在中文輸入模式下能以單鍵+空白就將符號拆出:

/S ,,

/S .。

/S ;;

/S ::

加入這4行則多了四個字根:, . ; :

除了加此4個字根外,當然也要設定字根與詞組的關聯,屆時拆字時才能找到對應的詞組:

, ,

. 。

; ;

: :

修改對照表

由朱邦復工作室下載回來的cj5.txt有些拆字版本上的差異,cj5.txt是第五代倉頡輸入法,和Windows 2000用的有些許差異(Windows好像是第六代的?不甚了解),因此在產生輸入法之前必須先行修改如下表(部份):

第五代倉頡 第六代倉頡
OOS OHS
IOGP IGP
OSP HSP
MWSL MWYL
TZX TOGX

加入速成輸入法的頭尾碼

cj5.txt內只有標準的倉頡碼,類似現行Windows倉頡輸入法用 頭碼 * (Shift+8) 尾碼的簡易(或稱速成)功能是無法達成的,因此我們再由http://www.ied.edu.hk/apfslt/issue_1/cim/input2.htm 下載其sciime.txt,該檔最後面以點開頭的就是速成碼,將點開頭各列複製到cj5.txt即可讓準備中的新輸入法具備速成功能。為了和以前的按鍵順序相同,我們將點移到中間再換用Z鍵(因為並未將星號當成字根,因此星號無法拿來組字,另外星號要同時按兩個鍵也不如Z鍵方便):

.ha 白 昏 徇 香 舶筍 箔 簡 → hza 白 昏 徇 香 舶筍 箔 簡

產生輸入法

對照表建立完畢後,便可以開始以Uimetool來產生輸入法了。

1.首先指定輸入法的中英文名稱;中文名稱使用在「文字服務和輸入語言」的輸入法設定視窗,英文檔名則是輸入法檔案名(只能8個字元,副檔名個定為.IME)。另外,中文名稱的第一個字會被當做中文輸入模式的提示字元(在『半』或『全』左側的字元,如)

2.指定對照表檔名。

3.指定最大字根數,亦即字根的最多數目,例如:「AFMBC 顯」就是5,若有更多拆字的,就要變更其數值。

4.如果看到下面畫面,恭喜您,您的個人輸入法已經出爐了。

5.接著便是到輸入法設定視窗去調整設定值了,在此不再贅述。

新增字根/詞組後如何使之生效?

如侯大師所言,除了重新安裝外似無其他辦法可施。重裝的簡便步驟如下:

  1. 先在輸入法設定中將舊的輸入法移除。

  2. 重新執行Uimetool:英文檔名必須使用與舊檔名不同的名稱

  3. 重新指定增修過的對照表

照此步驟便能產生新的輸入法了,重開機後再將舊的英文檔名.IME刪除。

重設自訂輸入法的顯示順序

剛剛使用Uimetool加進去輸入法清單的自訂輸入法會被排列到最後面,每次開機後切換到自己的輸入法都要額外的操作(按Ctrl-Shift或以設定好的快速鍵切換),輸入法設定又沒有自行排列的方法,而預設的輸入法排列則是以輸入法名稱為順序,因此只要變更輸入法名稱便可以重新排序我們的輸入法到最開頭了。

我們必須透過regedit.exe來修改輸入法名稱,找到下列機碼與輸入法項目後直接修改名稱,輸入任意的半形符號就能將之移到第一個位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts

如上例我們將輸入法名稱由”測試”改成”*測試”,新的排列結果如下:

結語

如此大費周章的另建一套輸入法到底划不划算?這可很難估計。不過,至少常用的全形符號、常用詞彙等的輸入確實是方便多了。當個人詞庫越建越多時,輸入的效率會更加提昇的,或許能有到達『筆隨意走』的一天呢

參考

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

7 個回應

  1. KT表示:

    Windows 的倉頡是三代,這是最廣泛被使用的版本。
    朱邦復先生的最新倉頡公開版本是倉頡五代。
    在這裡可以下載到 cj.cin (三代) cj5.cin (五代) 的對照表:
    https://github.com/lukhnos/openvanilla/tree/master/DataTables
    在這裡可以查詢【倉頡】(三代)及【倉頡五代】的字根:
    http://dict.tw/index.pl?Form=index.pl3&Database=input

  2. 簡睿表示:

    哈哈,軟體開發是我的本業啦。Blog內寫的都是工作中累積的一些經驗與心得。可能年紀較長,從DOS到Windows到Unix都有涉獵,嗯,科技是變得很快的,如果不是興趣,應該很快就陣亡了。

  3. H表示:

    不好意思,因趕時間,感覺留言的方式及文字不是很好,敬請見諒!!下次改進!!wish happy!!!不知道你是從事何種工作,感覺你好像對有關電腦的事全部都研究,只是…覺得?電腦領域那麼廣,….還是專一於自己最有興趣的才好….因為我是資管出身的,感覺你的學習方式跟我當初一開始一樣,只是總覺得這樣子學下來的結果,感覺好像懂很多,但卻…..不實!!!或許你可能是興趣吧!!!或許我的經驗不會發生在你身上吧!!總之,加油唷!!!

  4. H表示:

    如果要用手寫的話,那不如好好花時間,一天小時去練習打字,相信一兩個月下來可以進展到四五十個字,總比手寫不到幾個字來的好吧!!畢竟,打字這種能力,差十個字,差二十個字,差三十個字,電腦使用的效率就會差很多,是會差好幾倍的,以我自己來說,一篇一百多字的文章,我來敲是一兩分鐘就完成,但注音的人卻要敲五六分鐘,而且還可能同音異字一堆!!只是現在的人不願花時間,只好注音一個一個敲,實在無法體會到打字快的人所享有的優點!!語音會吵到人,當然它有它的限制,甚至每個人都要建立自己的語音資料庫!!到別台電腦還需要轉移及安裝!!…anyway,如果真的工作離不開電腦,不管學那種輸入法(最好是倉頡:不會忘),都要將自己的速度提升至少40-50,能夠愈快當然愈好!!不過我可能忘了一點沒說的,那就是練過中打的我,是有先練過英打的,所以鍵盤位置都很熟悉!!反正我覺得就是醬子!!

  5. 簡睿表示:

    語音輸入在辦公室裡好像不太方便,會吵到同事。印象中它的辨識率似乎不高? 手寫輸入法也是可能的另一個選擇吧。

  6. H表示:

    對於一般沒有接受打字訓練(練家字),或者是練過之後沒有一直再使用….等"打字不熟"的人來說,大概一分鐘在20個字以下的人都是如此!!我想,不應該再利用"鍵盤"這項工具來輸入,應該改變思維模式….而改用"語音"輸入法!!使用過ibm的語音軟體的我,大概訓練三天再加上習慣之後,很快的一分鐘可以達到三十個字以上,當然一半時間都在修正錯誤.如果一星期或者是一個月的訓練,應該可以到達五十個字!!如果你曾看過資訊月的示範人員在跑步機上,也能夠一分鐘七八十個字的速度!!並且沒有什麼太大的錯誤!!因此,與其建立自己的輸入法,還不如建立自己的語音輸入法資料庫,讓語音系統更了解你的發音,更能夠愈快地輸入正確的字!!只是,練習語音對很多人來說,不知道是不是將它當成小完意,還是看不起它,總是不願意去練習,總相信自己的手打速度絕對夠力,或者是寧可花更多的時間精力去做別種輸入法的加速速度?字辭,關聯字….因為自己練過打字(現為90/分),所以才知道打字的苦,老實講六十個字都還太慢!!唯一能夠在短時間改善打字速度的,就是語音了!!當然,輸入還是要透過手的啦!!打字也要想法子到一定的速度,否則…真是有口難言(指發表文章)!!覺得電腦不好用呀!!最後,讓我想起同學所練習的倉頡加強版"快倉",從原本平均四五碼的拆字,變成2~3碼.如此一來熟練之下~,~速度又快了!!破百了!!所以,與其建立自己的輸入法,可能的話,在原有的習慣的輸入法下,再改良即可!!ps:語音輸入法一套990-1500!!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *