無蝦米字碼表最後更新


用無蝦米最怕的是明明規則對為什麼字打不出來?
非官方的字碼表有很多版本 我採用的是蝦米研究室 無啥味 這兩個
自稱是他們自己打出來的(不是用程式轉自官方版),由於官方已無專利
這個也不屬於著作權法規定的重製甚至連改作都很難算的上
著作來源不是官方 而是以失效專利的方式著作,著作內容、格式、順序也有差
應該可以合法使用

但蝦米研究室 無啥味這兩者寫出來的字碼表不盡相同 (各自有缺漏的地方)
於是我整合這兩個版本變成這個我這個最終版字碼表

裏面放有Basic.txt ,GB.csv 兩個檔案
其中Basic.txt是正體中文+日文 沒有把蝦米研究室的Ext A,Ext B 包含進來
(ExtA,ExtB屬於是少見unicode 用到機率小)
即便已經省掉ExtA,ExtB 這樣還是會超過Windows版輸入法的限制(32000列)
所以我把簡體的部份單獨存放在GB.csv (有需要簡體,請自行整合)

我自己本身雖然會無蝦米,但無蝦米不是主力打字方式(很難發現問題或缺漏)
不過應該是沒有太大問題,之後就不再繼續更新
下面分成兩大部份介紹如何把字碼表製作成輸入法可用的方式

一、Linux

這個字碼表格式是ibus的,只能在ibus上使用
(紅色部份請修改成自己喜歡的檔案名稱)

  1. 把我這個字碼表(Basic.txt) 加上header後儲存成liu.txt
    header格式請參考
  2. ibus-table-createdb -s liu.txt -n liu.db
  3. liu.db 複製到 /usr/share/ibus-table/tables/
    並依照header 寫的icon 名稱,將自製的icon 複製到
    /usr/share/ibus-table/icons/

二、Windows

使用偽蝦米

  1. 首先下載偽蝦米 (需要裡面的轉換程式而不是字碼表)
  2. 把上一篇的字碼表按照字根排列,然後刪除使用頻率那欄
    只剩下 字根,TAB,字 ,並以 unicode 16 LE 編碼 儲存成txt
  3. 利用 txt2uni 將字碼表轉成 table (跟XLiu.exe放在一起)
    txt2uni Basic.txt liu-uni.tab
  4. 執行 XLiu.exe  即可正常使用

使用Yahoo奇摩 輸入法

  1. 參考無啥味的cin寫法(似乎下架了),用我這個字碼表製作自己的cin
    https://github.com/lukhnos/openvanilla/blob/master/CinHowTo.markdown
  2. 安裝Yahoo奇摩輸入法
  3. 雙點剛剛做出來的cin即可安裝

附註:我這個字碼表的頻率部份,除了真的是靠使用頻率之外 也含有分類的意義
大致上是這樣:正體常用字 > 正體少用字>日文>簡體

編輯 cin 輸入法表格

每個輸入法需要的檔案,都位在同名的目錄下。比方說,選單上的「OV 行列輸入法」的表格,就是在 OVIMArray 下的 array30.cin,而白話字(POJ)輸入法的表格是 OVIMPOJHolo 下的 poj.cin,而您會修改、新增的檔案,通常便位在通用輸入法模組下。

您可以使用任何可以一套編輯純文字檔案的編輯軟體,修改輸入法表格。注意:由於放在「資源庫」目錄下的檔案都有權限控管,您必須先將您想修改的資料 檔,拷貝一份至您的工作目錄中,待修改完後,再以蓋寫方式放回原來目錄。蓋寫時,您必須擁有系統管理人的權限,OS X 的 Finder 會在蓋寫時要求您輸入您的密碼。

輸入法表格的副檔名必須是「.cin」,在存檔的時候,也必須使用 UTF-8 編碼存檔,Mac OS X 內建的「文字編輯」(TextEdit)就是一套可以編輯純文字檔案,以及轉換編碼的編輯軟體。在一個 .cin 檔案中,應該要包含以下資訊。

以漁村輸入法為例,在檔案的開頭需要有以下設定資訊:

%gen_inp
%ename EHQ-Symbols
%cname 漁村符號
%encoding UTF-8
%selkey 1234567890

其中:

  • %gen_inp:所有的 .cin 檔案,都必須以此開頭。
  • %ename:輸入法的英文名稱。
  • %cname:輸入法的中文名稱。
  • %encoding:輸入法檔案的編碼方式,請不要修改這一行的內容。
  • %selkey:選字按鍵的設定,也就是當您輸入的按鍵可以產生多種結果的時候,您想要使用怎樣的按鍵選擇在選字視窗中出現的選項。上面的範例是使用 1 到 0 的數字鍵當成選字按鍵,您也可以改成用「qwer⋯」按鍵選字。

接下來必須要有 %keyname begin 與 %keyname end。在這兩個標籤的內容中定義的是輸入時所使用的按鍵,還有按下的時候應該先產生怎樣的結果,按鍵名稱與顯示名稱中間隔一個空白,每個按鍵的設定寫成 一行。比方說,在倉頡輸入法的設定中,就是「q 手」、「a 日」,標準鍵盤配置的注音輸入法就是「1 ㄅ」、「q ㄆ」等。

在設定完按鍵之後,就是設定每一個按鍵組合所應該產生的結果了,這些設定放在 %chardef begin 與 %chardef end 之間,前面設定的是您在前面 %keyname 所設定的按鍵定義的組合,空一個空格後,是產生的結果。比方說,您可以在注音輸入法當中加入自己創建的新字,想要用「ㄅㄧㄤˋ」打出「棒」這個字,就是多 加一行「1u;4 棒」。此外,在 %keyname 與 %chardef 所定義的英文按鍵,是沒有區分大小寫的。

在 cin 檔案中還有一項 %endkey 選項,因為可以應用的範圍比較複雜,將會在下一節中詳述。

自訂標點符號

不同的輸入法,對於如何便捷地輸入全型標點符號,總是有不同的作法;更有甚者,同一種輸入法,也會有好幾種不同的習慣。有人希望按下英文的標點符號 之後就自動轉成中文全型標點,有人喜歡按 shift+英文標點再變成全型標點,有人偏好使用「`」之類的前導字元,有人習慣按組合鍵等等。

由於每種輸入法拿來組字的字根對應到英文鍵盤的位置範圍不盡相同,標點符號的處理就應該自行定義,最好能提供使用者選擇的自由。基於這樣的原則,OV 的 XCIN 模組只能在能力所及的情況下,透過 cin 檔的規則來完成這個任務。

%endkey 這個欄位的用途是列舉輸入法字根中會觸發組字事件的字元。舉例來說,注音的聲調符號通常該出現在每個注音序列的最後,表示這串注音已經打完,要重組為一個中文字。因此,在使用標準鍵盤對應的情況下,注音的 cin 檔裡應該有這麼一行:

%endkey 3467

3467 分別是注音標準鍵盤對應裡的三聲、四聲、二聲與輕聲。這個欄位可以有效幫助我們自訂標點符號的輸入方式。以使用倉頡輸入法為例,首先,如果喜歡用 「shift+英文標點」這種方式來輸入全型標點,就應該把這些「shift+英文標點」加進 cin 檔的 %keyname 及 %chardef:

%keyname begin
< ,
> 。
? ?
: :
" 、
{ 「
} 」
| |
~ 〜
! !
@ @
# #
$ $
% %
^ ︿
& &
* *
( (
) )
_ ‐
+ +
...(以下是倉頡本來的字根,別把這行也抄進去啊!)
%keyname end
%chardef begin
< ,
> 。
? ?
: :
: ;
" 、
" ”
" ’
" ‘
{ 「
{ 『
{ 《
{ 「
{ 〔
} 」
} 』
} 》
} 」
} 〕
} }
| |
| \
~ 〜
! !
@ @
# #
$ $
% %
^ ︿
& &
* *
( (
) )
_ ‐
_ _
_ ─
_ –
_ —
+ +
+ =
...(同樣,以下是倉頡本來的字根對應)
%chardef end

上面的例子,在 %keyname 裡加入了會用來輸入標點符號的英文鍵位,並在 %chardef 裡加入了可能會用到的全型標點符號與字根對應的狀況。像是「<」(相當於 shift+,)只會對應到「,」,但「:」(相當於 shift+;)就會對應到「:」或「;」。當 cj.cin 加入了這些資訊之後,「shift+英文標點」就可以用來輸入全型標點了。

做了以上修改後,由於倉頡的組字事件通常由空白鍵來觸發,每次打標點符號時,也得多按一個空白鍵才能讓倉頡輸入全形符號。這時候 %endkey 就派上用場了,因為 %endkey 的用途是「列舉輸入法字根中會觸發組字事件的字元」,而輸入全形符號的狀況就是,如果有一種字的字根只有一個,打了之後就代表要組字。因此,在 cj.cin 裡再加上這一行:

%endkey <>?:"{}|~!@#$%^&*()_+

5 則迴響 (+add yours?)

  1. hepha
    六月 12, 2010 @ 13:42:14

    不要最後啊><

    回覆

  2. 訪客
    八月 21, 2010 @ 13:45:33

    我可以與你聯絡嗎?

    回覆

    • orange
      八月 22, 2010 @ 22:29:31

      就直接回覆在這裡
      如果不方便就到 moztw.org 或者 ubuntu-tw.org 用私人訊息
      帳號名稱一樣是orange

      回覆

  3. lhrkkk
    五月 29, 2011 @ 04:55:49

    您說您主要不是用無暇米輸入,請問您主要是用什麽輸入法輸入的呢?推薦一下謝謝

    回覆

  4. orange
    五月 29, 2011 @ 19:53:57

    就普通的注音,新注音,新酷音,詞音…
    只是因為這樣的輸入法感覺比較像在說話(溝通)
    而不是單純的打字

    回覆

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: