用 OpenVanilla 打造 Mac OS X 上的大易純三碼輸入法
西元 2005 年 2 月 16 日 凌晨 2 點 19 分
用了一個多禮拜的 iBook,在 Mac OS X 上用大易輸入法是我心中的痛,Mac OS X 內建的大易輸入法是二三四碼混合版本,對一般大易輸入法使用者來說是足夠了。但是不能忍受的是,它居然是用 1、2、3 等數字鍵來選字,和一般慣用的 ‘ 、 [ 和 ] 完全不同,瞬間讓我不知所措,打字速度也因此減慢許多。
後來,我找到了由 lukhnos 等人所撰寫的開放香草輸入法框架 OpenVanilla(以下簡稱 OV),節錄 OV 官方網頁對 OV 的簡單介紹:
OpenVanilla(簡稱OV)是一套免費的、開放原始碼的、針對 Mac OS X 平台設計,可以動態載入各種輸入法的中文輸入法架構(Framework)。OV 本身並不是一個輸入法,而是一個負責載入各種輸入法資源的載入程式,擔任各種輸入法與作業系統之間的橋樑。透過OV,您可以使用倉頡、簡易、行列、注音,以及不需要手動選字的酷音輸入法,您也可以刪除不需要的輸入法,得到一份清爽的輸入法選單。
在 OV 當中,您更可以獲得更多在中文輸入的自由。OV 支援 Xcin(一套普遍應用在 Linux 、FreeBSD 等作業系統的視窗環境 Xwindow 下的中文輸入介面)格式的輸入法表格— cin 檔案,透過 cin 檔案,您可以完全修改原本的輸入法設定,包括重新設定按鍵定義、新增文字或詞彙,甚至,您可以發明一套屬於您自己的輸入法。
OV 裡的大易輸入法(from Xcin)和 Mac OS X 內附的最大不同在於:OV 版本的選字方法和 Windows 上慣用的選字方法一模一樣,所以我當然就改用 OV 的大易輸入法了。因為我原本在 Windows 是用 「大易三碼單字版」,所以我已經習慣拆字成三碼,我發現 OV 大易輸入法表格裡的部分三碼排列順序和 Windows 上的 「大易三碼單字版」 有些微的不同。
譬如打 「AEJ」 會出現 「仃」 和 「何」 兩種選擇,在 OV 版本裡,「仃」 會是第一個選擇,但就使用頻率來說,「何」 應該是第一個選擇(難道仃比較常用?)。所以我們必須修改 OV 的大易輸入法表格(dayi3.cin),讓它合乎我們的使用習慣,修改的方法請參照自訂選單、修改與設計自己的輸入法。像 「AEJ」 會出現在 dayi3.cin 裡兩次,兩者出現的前後順序就是選字的順序,修改方法就是將第一次出現的 「AEJ 仃」 修改成 「AEJ 何」,第二次出現的 「AEJ 何」 修改成 「AEJ 仃」,如此一來就會讓 AEJ 預設是使用 「何」,而不是 「仃」。其餘組合修改方法依此類推。
在修改 dayi3.cin 時,必須先將 dayi3.cin 從 Hard Disk/資源庫/OpenVanilla/0.6.3/OVIMXcin 目錄複製到自己的目錄,然後修改複製到自己目錄的 dayi3.cin,修改完成之後請把原本位於 OVIMXcin 目錄下的 dayi3.cin 移到垃圾桶,然後再從自己目錄把修改後的 dayi3.cin 複製到 OVIMXcin 目錄,然後重新執行應用程式(如果程式已經執行中),大易輸入法表格就會馬上生效(感謝 #osxchat 的 lukhnos)。
接下來,我修改了 OV 裡的大易易輸入法設定,讓原本的三四碼混合版變成純三碼版本,以便銜接原本在 Windows 上習慣使用的 「大易三碼單字版」。
首先請進入 OV 的偏好設定,然後按下 OV 設定視窗下方的 「進階設定」,你會看到用文字編輯器開啟的 OV 設定檔,請找到下列片段文字:
<key>IM-OVIMXcin-dayi3.cin</key>
<dict>
<key>autoCompose</key>
<integer>0</integer>
<key>hitMaxAndCompose</key>
<integer>0</integer>
<key>maxKeySequenceLength</key>
<integer>5</integer>
<key>shiftSelectionKey</key>
<integer>1</integer>
</dict>
把 maxKeySequenceLength 由原先的 5 個改成 3 個(拆碼最長字數由五碼減成三碼)。並且把 hitMaxAndCompose 的值設為 1(打到最長字數即馬上組字,不需要再按空白鍵)。所以更改後上列文字會變成:
<key>IM-OVIMXcin-dayi3.cin</key>
<dict>
<key>autoCompose</key>
<integer>0</integer>
<key>hitMaxAndCompose</key>
<integer>1</integer>
<key>maxKeySequenceLength</key>
<integer>3</integer>
<key>shiftSelectionKey</key>
<integer>1</integer>
</dict>
PS:原本以為可以把修改後的 dayi3.cin 放在網路上提供有需要的人下載,但是看到 OVIMXcinDayi3 的授權內容提到:
OV 當中的大易輸入法,使用的是太易資訊公司同意開放供中文使用者自由流通使用的輸入法資料表格。根據授權內容,您不得重新散佈字形任意更改編碼規則後的表格,但是您可以改變大易輸入法的表格內容,適合您自己的需求,而您或許特別希望修改的,就是在中文全形標點符號輸入的部份。修改表格的方法請參見手冊中「自訂選單、修改與設計自己的輸入法」部份。
所以有需要的人請自己動手修改 dayi3.cin 吧!抱歉,請不要來信跟我索取。
2005/06/03 update: 經 lukhnos 建議,把文章內提及的軟體作者真實姓名改為 「筆名」。
標籤:Mac 軟體、Mac OS X、OpenVanilla
(這是什麼?)
西元 2007 年 10 月 8 日 at 1:05 am
To Willy:
感謝你幫忙回答。
(這是什麼?)
西元 2008 年 3 月 16 日 at 8:28 pm
請問如果要打標點符號的話該怎麼辦呢?比方說要打點點點?
(這是什麼?)
西元 2008 年 3 月 17 日 at 12:15 pm
To Hareluya:
你指全形的點點點「…」嗎?還是三個半形的「.」?前者的話請把「…」加入 .cin 檔的「.」定義裡,後者就直接切換輸入法回英文模式再輸入囉。
(這是什麼?)
西元 2008 年 3 月 17 日 at 7:36 pm
我的OV好像是8.0版的
所以好像不太一樣可以請大大再解釋詳細一點嗎???
不能打標點符號真的快讓我瘋了
沒有住址功能也覺得很吃力
(這是什麼?)
西元 2008 年 3 月 17 日 at 11:07 pm
To Hareluya:
是 0.8 版吧?那跟我一樣,不知道你是用它的哪一種輸入法?請先從磁碟機下的
/資源庫/OpenVanilla/0.8/Modules/
找到屬於你輸入法的 .cin 檔,然後照文章裡的改法去加就好了,譬如在 %chardef end 之前加入:
, ,
. 。
; ;
… …
存檔、重開你的程式,就可以在那個程式輸入標點符號了,希望有回答到你的問題。另外,住址功能是什麼?
(這是什麼?)
西元 2008 年 3 月 20 日 at 6:30 pm
住址就是指一些打住址時候常用的字啊~
比方說:號,縣,路,市,鄉,鎮等等~
我現在去修改看看吧~
(這是什麼?)
西元 2008 年 3 月 20 日 at 6:36 pm
我試著去修改dayi3.cin的檔案,可是我打不等開耶~我是很初級的使用者~
(這是什麼?)
西元 2008 年 3 月 20 日 at 10:12 pm
To Hareluya:
用文字編輯器開,我是用 TextWrangler。
(這是什麼?)
西元 2008 年 3 月 24 日 at 6:26 pm
用會了⋯謝謝大大的教學~真的很好用說~
感恩啦!
(這是什麼?)
西元 2008 年 3 月 25 日 at 1:33 am
To Hareluya:
恭禧!