[情報] ibus-faft: FreeArray for Test for th …

看板Array (行列輸入法)作者 (Shaform)時間14年前 (2010/02/15 16:25), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
!! UPDATE 2010/02/20 !! 修正符號表「圖表」造成的當機問題。 Introduction FreeArray for Test for the Input Bus ibus-faft 是基於 ibus 輸入法架構所製作之行列輸入法引擎,其結合來自 libchewing 的斷詞模組實作智慧選字功能,並利用「行列定符」改進原行列的符號輸入。此外,對 dvorak 鍵盤具有完整支援。 在開發過程中,除了引用大量 libchewing 的程式碼外,也參考了 ibus-array, ibus-chewing 的程式碼才得以完成。 ibus-faft 乃「自由行列」輸入法的技術預覽實驗品,主要用來測試智慧選字的易用性。 ibus-faft 是自由軟體,採 GPLv3 授權。 Contents 一、前言 二、下載 三、功能簡介 四、著作權資訊、謝辭 五、Additional Notes 一、前言 我正在開發一個以行列輸入法為基礎並做些改良的輸入法,名為「自由行列」: FreeArray 。詳見:《簡介自由行列專案》http://0rz.tw/e7W6A 由於完成之日似乎遙遙無期,且先前基於 scim-array 來實作的「行列定符」(見 #19wlF4XL)也尚未移稙到 ibus 平台上,使我雖升級到 Ubuntu 9.10 卻仍然使用著 scim,於是突發奇想,先行透過 ibus 實作自由行列的部分功能。一方面是為了讓我能在 ibus 上使用行列定符,二方面則是要實際測試自由行列,特別是智慧選字,的可行性。 ibus-faft 就此誕生!! 原本以為是能很快完成的實驗品,結果卻花了很多時間,好像甚至比開發 libfreearray 的時間還多了!?(雖說 libfreearray 專案走走停停,我自己也不知道花了多少時間 XD) ibus-faft 是引用大量 libchewing, ibus-chewing, ibus-array 程式碼,再加上原本 libfreearray 開發到一半的成果,進行大量修改才拼合出來的。實作的功能有下: * 簡碼 * 特別碼 * 原行列之詞彙輸入 * pre-input * 行列定符 * 簡易符號輸入(採新酷音之符號模組) * 智慧選字(採新酷音之斷詞模組) 注意 ibus-faft 是實驗性產品,搞不好不會再更新。 且程式碼超亂,超難維護,很多地方都只是暫時讓它跑的動而已,甚至還填充著大量怪怪 的註解,請小心使用。 二、下載 http://code.google.com/p/freearray/ ibus-faft 的程式碼現在放在 freearray 的專案頁上,也可透過 svn 下載。 http://freearray.googlecode.com/files/ibus-faft-0.0.0.20100507.tar.gz 關於安裝的注意事項可參考本版 ibus-array 的文章 另外 ibus-faft 還須安裝 libsqlite3-dev 才可編譯 三、功能簡介 * pre-input: 簡單而言,就是在尚未組字完成前,先行依已輸入的行列碼查字,此時可透過數字鍵快速 出字。 在簡碼開啟的情形下,pre-input仍會試圖填充少數無簡碼的空缺。 * 行列定符: 行列定符是利用從原行列碼發展出來的符碼來輸出符號。 由於和原行列碼相似的特性,不需花很多心力記憶,更重要的是它提供了跨鍵盤、一致性 的符號輸入。 目前共可輸入以下符號: 1^ = 5^ 」 8- \ 1- ─ 5^5^ 』 8v ‘ 2^ 「 5- 〉 8v8v “ 2^2^ 『 5-5- 》 9^ ※ 2- 〈 5v ) 9- / 2-2- 《 5v ) 9v ’ 2v ( 5v5v 〕 9v9v ” 2v2v 〔 5v5v5v 】 0^ : 2v2v2v 【  6- 、 0- 。 3- ! 7^ ? 0-0- · 4- + 7- , 0-0-0- … 4-4- # 0v ; 在輸入完符碼後,按下 Shift+「詞彙鍵」輸出符號。 詞彙鍵即 11- 或 qwerty 中的「'/"」,dvorak 中的「-/_」。 * 簡易符號輸入 簡易符號輸入即直接繼承自新酷音的一般符號輸入, 然由於作者亟欲解決 qwerty/dvorak 的符號輸入問題,簡易符號輸入便被提到更高的地 位。 行列定符乃跨鍵盤一致,簡易符號輸入則是依鍵盤排列輸出。 在中文模式之下,按下 Shift+任意符號鍵即可輸出符號或英文, 由於啟動的關鍵是 Shift,可依 CaspsLock 的不同而輸出大小寫, 而全型模式下更可直接輸出中文符號,且完全根據所使用的英文鍵盤輸出。 若開啟 easy symbol input,則在英數模式下仍可使用簡易符號輸入。 (雖然暫時看不出用途,事實上我也都沒把它開啟,理論上修改後,在英數模式下快速輸 出特殊符號如各種英文引號的可能性還是有的) 此外,「2^」+「1~0」 的符號表現在被搬到「`」+「1~0」了(同樣是來自新酷音的功能 ,不過是用行列的符號表) 不論符號是透過哪個功能輸入,輸出的符號都會停在緩衝區上,可按「下」來選擇類似符 號(這點完全來自新酷音,在此實驗版中尚未做任何改動) * 其它 按下 Shift-R 切換英/中模式 按下 Shift+Space 切換全/半型 auto-input-mode 可自動輸出中文: 若該中文是由 4 個行列碼組成,按下第五碼會自動輸出並把第五碼當下一次輸入。 或者在輸出符號時也會自動輸入打到一半的中文。 auto-clear-mode 會自動清除錯誤行列碼 any-row-key-select 可用任一列的鍵來選字。(如 8v 可當 8 來用) 著作權資訊、謝辭 ibus-faft 是自由軟體,採 GPLv3 授權。 同時感謝: chewing project: 若非新酷音專案,ibus-faft 不會有可能。 ibus-chewing project: 本專案參考其原始碼 ibus-array project: 本專案參考其原始碼 cherico: 他在本版關於 OpenArray 的文章(見:#12QHXYDh),比我早提出智慧選字與行列、新酷 音的概念。 Jedi: 我是因為他的文章才開始學習dvorak,且自由行列符號輸入的設計一部分是為了解決他所 提出的問題:http://0rz.tw/7Rnwu Additional Notes .dvorak 鍵盤的設定 在 System -> Keyboard 中設為 dvorak, 在 ibus -> Preferences -> Advanced 中勾選 Use system keyboard layout 在 ibus-faft -> Settings -> General -> Keyboard layout : dvorak .About the removal of the 5th KeyCode 第五碼被我移走了。這跟未來自由行列要發展的簡/繁/全漢字模式多少有相關。 .Short code is disabled by default 因為作者非常痛恨背東西,所以根本沒有背簡碼,因此,簡碼預設是不啟動的。 完全由 pre-input 來尋找符合目前輸入 KeyCode 中, feq 最高的中文來排入。 .The behaviour of auto-clear mode and auto-input mode When auto_clear_mode is enabled, the KeyCode buffer will be cleared if you press space for two times but cannot get the right character. Also, pressing easy symbol key for two times also activate autoclear. In auto input mode, pressing valid KeyCode keys for two times when the KeyCode buffer is full and cannot get the right character, autoclear would also be activated if in auto-clear-mode. If you press a easy symbol key, ibus-faft would try to input the KeyCodes in the buffer, and input the symbol afterward if succeeded, if not succeeded, auto-clear may be activated to clear the KeyCodes, in that case, the symbol would be input also. .The implementation of short code, special code and phrase input When you input a phrase, ibus-faft would try to find the original ArrayCode of every character in the phrase, and input them one by one. While doing this, ibus-faft would create a select interval for every one of them to prevent the character from being changed by the phrasing module. It works almost the same when you input a short code/special code character, but the original ArrayCode of every character in Short Code input & Special Code input is stored in the database already. So ibus-faft would not need to find it in somewhere else. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.125.237.132 ※ 編輯: shaform 來自: 140.113.68.215 (02/20 15:55)

02/20 20:53, , 1F
有先上字嗎?XD
02/20 20:53, 1F

02/21 07:40, , 2F
meya: 不管候選幾字,按空白鍵就會直接出字(並選字)
02/21 07:40, 2F

02/21 07:42, , 3F
2010/02/20: 修正符號表「圖表」造成的當機問題
02/21 07:42, 3F

02/21 20:27, , 4F
太厲害了
02/21 20:27, 4F

05/07 19:57, , 5F
累積幾個修正的錯誤,發佈了新版
05/07 19:57, 5F
※ 編輯: shaform 來自: 140.113.97.86 (05/07 19:58)
文章代碼(AID): #1BUGJwkY (Array)
文章代碼(AID): #1BUGJwkY (Array)