酷音輸入法是我在 Linux 上最喜歡的智慧型注音輸入法,我想也應該是最好的,但在過去的這幾天習慣了『我的注音輸入法』後,他的選字鍵就讓我很難過了。酷音使用[1234567890],作為選字鍵,這排按鍵在鍵盤的最上方,也就是離開手指最遠的一排鍵,我試圖將它的選字鍵安排在[asdfghjkl;],讓它就放在手指的正下方。這樣我在選字的情況下就不用在移動手指頭了。:-)
為了達成這個目的,我 hack 了一下酷音輸入法,作了很小很小的修改。如果你也有這樣的需求可以試一下。
lloyd@TP240 chewing # diff xcin_chewing.c xcin_chewing.c.org
36,37d35
< static char selKey_define[11] = "asdfghjkl;\0";
<
70,76c68,70
< // for(i=0; i<9; i++)
< // config.selKey[i] = i + '1' ;
< // config.selKey[9] = '0' ;
<
< for(i=0;i<10;i++)
< config.selKey[i] = selKey_define[i];
<
---
> for(i=0; i<9; i++)
> config.selKey[i] = i + '1' ;
> config.selKey[9] = '0' ;
166,177c160,166
< // for (i=0; i<9; i++) {
< // inpinfo->s_selkey[i].wch = (wchar_t)0;
< // inpinfo->s_selkey[i].s[0] = i + '1';
< // }
< // inpinfo->s_selkey[9].wch = (wchar_t)0;
< // inpinfo->s_selkey[9].s[0] = '0';
<
< for (i=0; i<10; i++) {
< inpinfo->s_selkey[i].wch = (wchar_t)0;
< inpinfo->s_selkey[i].s[0] = selKey_define[i];
< }
<
---
> for (i=0; i<9; i++) {
> inpinfo->s_selkey[i].wch = (wchar_t)0;
> inpinfo->s_selkey[i].s[0] = i + '1';
> }
> inpinfo->s_selkey[9].wch = (wchar_t)0;
> inpinfo->s_selkey[9].s[0] = '0';
>
一般來說純粹的注音輸入法,輸入的瓶頸在於同音字過多選字率過高,而一但需要選字則輸入的速度將會因選字而減慢速度,況且選字也很容易讓打字者眼睛產生疲倦。於是乎怎麼樣降低選字率就成為輸入法很重要的課題。將常用字順序背下來是使用純注音加快輸入的唯一方法,但這也是一個很容易忘記的方法。
目前的輸入法大至上分幾類
1.拆字型輸入法
2.拼音型輸入法
拆字型輸入法如倉頡、無蝦米、大易、行列、鯨魚輸入法,發展走向為、1.降低選字率、2.擴大可輸入字集3.簡碼加快輸入
拼音型輸入法如新注音、自然、詞音、酷音則強化語意辨識、以詞為主,強化常用字先上,用以降低選字率以及選字的動作。
我的注音是採用注音+拆字規則而來,以注音作為輸入方法用拆字規擇選字。目前我採用無蝦米輸入法當我的選字規則。其實是可以混合使用的。例如注音+倉頡、注音+大易、注音+行列。你只要原本就熟悉注音加上短期其它輸入法訓練就可以上手。就算你還是只用它來作注音輸入也行。這是個讓你可以慢慢無痛的過渡到別的拆字輸入法的一個好方法。
使用方法簡單說明如下:
依照注音輸入法 [黃] cj;6 [ㄏㄨㄤ2] 但 cj;6 [ㄏㄨㄤ2]就有這麼多字可以選 [黃徨惶簧璜磺蝗煌皇凰.....]
依照無蝦米輸入規則 [黃] ka, reqb , reqa ..
我的注音就是在注音之後加上一碼或兩碼做為選字用,於是[黃]這個字就是 cj;6, cj;6k, cj;6ka, cj;6r, cj;6rb .....採用這樣的方法就可以選出惟一的一個字。
因為常用字其實並不會超過三千字,依據詞音輸入法的字頻研究資料針對常用字加強降低選字率,這樣很短的時間內就可以加快輸入速度。
而我在須選字的情況下,選字鍵由 [1234567890] ,改成用 [asdfghjkl;] 這是因為這十個鍵就放在手邊,相較之下比較不須要移動手指。
----
八股過後來說說我的注音輸入法,起源於多年前學習無蝦米失敗的經驗,當時我注音輸入法約為 50-55/分鐘,這是我死背倚天中文順序而得來的結果。但注音輸入法在長時間打字下是很傷害眼力,且在只看稿打字的情況下基本上是很難辦到。於是我花了一段時間學習無蝦米輸入法。
轉換輸入法是一件很痛苦的事情,當一個人輸入速度由 50 - 55/min 降為 5-10/min ,而且還有很多字拆不出來,但思緒往往就此打斷,最後我放棄了,在當時我就有了個想法,何不用注音輸入,用其它拆字型輸入法選字呢? 但當時的我實在是無能為力,所以只能停留在發想階段。
多年過去了,我在 Linux 上已經很習慣用酷音輸入法,而且酷音輸入法也讓我感覺到很舒服,在此感謝酷音輸入法。
一天在 IRC 上的朋友 AceLan 在學無蝦米輸入法。又讓我勾起了往事的回憶,也是巧合因工作的關係需研究一下輸入法,也是巧合這陣子我在看 python 還沒實際上用 python 寫過程式,於是就拿 python 在這件事情上試刀。
最初的想法是在注音後面在加一碼無蝦米作為選字用,很快的轉表程式在一個晚上的時間就寫好了,但是有些還是需選字,隔天嘗試只做 big5 5401 個常用字, 內碼範圍在 A440-C67F 。但我發現有些根本不是常用字,於是再度尋找經過統計而產生的中文常用字,我找到了詞音輸入法當時統計詞頻字頻的資料,將字頻大於 1000 的字選出來約三千字左右,針對這三千字作加碼的動作後,果然相當好用。
事實上依據原始的想法應該很快就可以應用在、注音+倉頡、注音+大易、注音+行列上面。而所須要製作的時間只需要五分鐘。