| ||||||||
adm | Find | login register |
OS: win32 xp sp2 gcin: 1.45 我將 ar30.cin 前面 %selkey 1234567890 改成 %selkey asdfghjkl;,在 windows 下轉成 gtab 檔後執行。行列按 tg 本應出現下面第一張圖,結果出現如第二張圖的錯誤字碼。後來發現 %selkey 中的 g 改回 5 或 t ,就不會有亂碼。%selkey 改成 gasdfhjkl; 也會有亂碼。可能 %selkey 只要有 g 就會產生。cin 檔已轉成 dos 格式。 | |||||||||||||
你是用最新的 18-Nov-2009 13:04 的 gcin.msi 嗎?我試了一下,沒有你說的問題。
| |||||||||||||
| |||||||||||||
selkey 必需避開可能是碼位的按鍵,否則,即使程式不出問題,輸入時拆碼可能也會出問題。 譬如:「強」是拆成 tgx/,也可拆成tg2,如果是用 tg2 這種拆法,又改用 asdfghjkl; 選字,tg2 就會變成 tgs,當你打 s 的時候,gcin 怎麼知道 s 是拆碼的一部分,還是選字鍵呢?如果 gcin 把 s 當成拆碼,那麼「強」就不可用 tg2 這種拆法了。如果 gcin 把 s 當成選字鍵,那麼「阸」的拆碼是「tgsi」或「tgs8」,要怎麼輸入?當你打到 tgs 的時候就會出字了。 | |||||||||||||
完全不需要避開。 CJKV 輸入法都有 endkey (以中文來說最常見是 space), 以 endkey 為分界,之前是拆碼,之後是選字,完全不會搞混。 gcin 預設支援「預覽候選字」,所以「常常不需要」endkey 就可以直接選字,但這並不影響原本的 endkey-based design。 最常見的範例是注音輸入法,125890 既是拆碼也是選字鍵,3467 同時是「拆碼」 「endkey」「選字鍵」三位一體,使用上完全沒有困難。 我已經用「gcin + 注音gtab」兩、三年了(用 gtab 好處是可以惡搞很多方便的東西,比 gcin 內建注音方便),也一直啟用「預覽候選字」,非常好用。 | |||||||||||||
不好意思先前沒想清楚,誤導人了。應該不是 selkey 要避開碼位,而是行列的情形比較特殊,使用一級、二級簡碼時,必需可以輸入簡碼後,不再按其他按鍵,就直接用選字鍵出字,也就是,以一般情形來說,1234567890 是 selkey,也是 endkey,如果把 selkey 改成 asdfghjkl;,這些鍵一方面必需是 endkey,但另一方面又是行列拆碼的碼位,如果剛好位於拆碼中間、而不是最後一個拆碼,就會出問題。不知這樣想有沒錯? edited: 1
| |||||||||||||
強 tg2 的按法目前是編在 %quick section 內,編碼為 TG 弓強,2 是由系統處理。我目前的做法是在 %chardef section 內再直接加上 tg2 強 ,這樣就可保留簡碼的用法了。我個人是比較懶的去背簡碼,主要是按全部的碼+空白再去選字,所以用 asdf 比較省力。
| |||||||||||||
剛剛在 Ubuntu 9.10 下再試一次,還是會有錯誤。請問 eLiu 兄是用我附件內的 gtab 檔測的嗎?
| |||||||||||||
當然不是,是用你給的 asdf ar30.cin 經最新的 gcin2tab 產生出來的 .gtab edited: 1
| |||||||||||||
可否請 eliu 兄和我附件內的 gtab 檔做一下 binary compare? 我的 gcin2tab 大小是 24576 Bytes. md5 是 80380670fb9d237984164a33c276b03c *gcin2tab.exe 執行後出現
Enter table file name [.cin] : ar30.cin Linux 下的訊息好像比較多。 | |||||||||||||
這是對的,我是用你 \bad\ar30.cin 產生的 .gtab
| |||||||||||||
可能我對問題沒有描述清楚,讓 eliu 兄誤解了。 good/ar30.cin 和 bad/ar30.cin 只有在 %selkey由 5 改成 g, 其它的地方都是一樣的。 good/ar30.cin %selkey asdf5hjkl; bad/ar30.cin %selkey asdfghjkl; 可是按下 tg 後出現的待選字卻由 a 弓 s 強 d 費 變成 a 弓 s 阸 d 刜 為什麼只改一個 %selkey 會讓待選字出現不同的結果? 本來應該出現 %quick 裏面的 TG 弓強費疆弛弦□弱弧彈 卻好像被 %chardef 裏面的待選字蓋掉。 因為我在 Ubuntu 下試也是這樣,所以我想是 gcin 對 %quick 和 %selkey 的處理上的問題, 而不是 gcin2tab 的問題。 比較 good/ar30.gtab 和 bad/ar30.gtab, 兩個只差一個 byte 而已( 5-> g) 。 edited: 5
| |||||||||||||
可否請 eliu 兄講解一下 gcin 是如何處理待選字的嗎? 1. %chardef 和 %quick 的優先順位誰高? 2. 如果沒有 %quick ,待選字是如何產生的? 以 bad/ar30.cin 來說, tg + %selkey s 會對應到 tgs 阸 但是 tg + %selkey d 卻出現 tgee 刜 , 而不是出現 tgd 引 和 tgd 弔 。 edited: 1
| |||||||||||||
就算真的有 bug,asdf5hjkl; 是很奇怪的按鍵方式,沒有人會這樣用。 很久以前學過行列,行列需要選字的機會其實不是很高,移到 asdf 其實不會比較好用。 edited: 2
| |||||||||||||
asdf5hjkl; 只是要測試那裏有問題,並不是真要這樣子用。 eLiu 兄沒空處理的話,我還是先用 1234567890 好了。 edited: 1
|
| ||||||||
adm | Find | login register |