吉旦餅, 基於 宇浩輸入法 (GitHub: forfudan/yuhao) 製作, 亂序字根, 三碼定長, 延遲頂字. 「吉旦餅」其名來自三名主要開發人: 阿吉, forFudan, 王牌餅乾, 又取義於 華夫餅 (wafel), 其漢譯應有 "雞蛋餅" 之義.
原 宇浩三碼頂 相關内容可在保留分支 beta 中找到.
- 方案文件下載.
- 不建議普通用户Clone Repo, 請移步 此方案的發佈頁
暫無字根圖, 用反查練就完事了.- 下載的
into-latest.zip
中附有一份 ASCII 字根對照表:mappings_table.txt
. - 還有 字根網頁以供收藏.
- 下載的
- 取碼方式:
- 單根字: 字根大碼 + 字根小碼, 補加空格.
- 一:
(一|Fi) -> [fi_]
. - 了:
(了|Kd) -> [kd_]
.
- 一:
- 兩根字: 首根大碼 + 次根大碼 + 次根小碼.
- 他:
(亻也|ErUd) -> [eud]
. - 有:
(𠂇月|SzWi) -> [swi]
.
- 他:
- 多根字: 首根大碼 + 次根大碼 + 末根大碼.
- 的:
(白勹丶|DbHbLe) -> [dhl]
. - 你:
(亻冖小|ErPmVi) -> [epv]
.
- 的:
- 單根字: 字根大碼 + 字根小碼, 補加空格.
- 簡碼:
- 一簡字: 采用空格延遲頂的方案, 共設一簡二十七條.
- 一簡字: 的:
[d_]
, 一:[f_]
, 了:[k_]
.
- 一簡字: 的:
- 一簡词: 采用分號延遲頂的方案, 共設一簡词九條.
- 一簡詞: 谢谢:
[m;]
, 可以:[f;]
.
- 一簡詞: 谢谢:
- 二簡:
- 二簡字: 榜:
[al_]
, 便:[ef_]
. (没有碼長上的收益, 僅爲减重設置了十餘條二簡.) - 二簡詞: 问题:
[qo;]
, 因为:[xk;]
.(幾個空碼位放了一些高頻簡詞,無重,不記得也不影响單字.)
- 二簡字: 榜:
- 一簡字: 采用空格延遲頂的方案, 共設一簡二十七條.
- 反查:
- 拼音反查: 没有輸入内容時, 按下
grave
鍵進行拼音反查. - 輸入框中存在内容時, 按下
/
鍵切換多重拆分提示.
- 拼音反查: 没有輸入内容時, 按下
- 重複上屏:
- 上屏一個字後, 按下
grave
鍵重複該单字. - 若因延遲上屏兩個或三個字後, 按下
grave
鍵重複上次上屏的兩或三個字. - 若候選框有兩或三個字,且並未上屏時 直接按下
grave
鍵則重複上屏候選框中的最後一個单字.
- 上屏一個字後, 按下
- 智能選重:
- 和 三碼鄭碼 類似, 對形如
abcabc
的輸入串, 檢查有無非單字首選的詞組可用. - 例如 "梳理" 一詞, 編碼爲
alnjdi
, 其中aln
/jdi
的首選分别是 "弦"/"理", 爲了打出 "梳理", 引入該六碼詞. 又如 "", 編碼爲a_pka
, 單字首選是 "可"/"鳞", 引入該五碼詞.- 首次部署後,須輸入
/smart
再選擇 “詞典載入”,方可激活智能選重.
- 和 三碼鄭碼 類似, 對形如
- 延遲頂:
- 輸入串分爲 "暫存串" 和 "活動串".
- 例如 "時間", 編碼爲
jgmcjz
, 此時暫存串爲jgm
, 活動串爲cjz
, 暫存候選爲 "時", 活動候選爲 "間". - 顯示效果如:
時[間¹]cjz 抇²
.
- 清空活動串:
- 由於存在延遲頂, 改寫了一般的 回車清屏 功能, 使得回車鍵只清除活動編碼, 而不是清除整個輸入串.
- 例如當前輸入串爲
時[见¹]rj ~全² ~妹³
, 則按下回車鍵後, 清除活動串rj
, 輸入串變爲[時¹]jgm 玛² 璹³
.
- 打斷施法:
- 當輸入串
abcabc
觸發 智能選重 時, 如果原本想輸入的是首選單字, 則可按下Tab
鍵打斷本次智能聯想. - 例如
把[柄¹]afr☯ ~威²
, 若此時想要輸入的並不是 "柄" 而是 "威", 則只須按下Tab
鍵, 上屏 "把" 字, 輸入串變爲[威¹]afr ~柄²
.
- 當輸入串
- 内嵌候選:
- 通過調整首選的 preedit 串, 將當前候選列表展示在嵌入編碼中.
- 該功能默認開啓.
- 另,ctrl+0 ,可直接上屏整个嵌入編碼且包含comment.
- ctrl+k, 仅在Linux中(安裝wl-copy,pango-view)可以截圖整个嵌入編碼并傳入剪貼板.Macos需要pango-view,impbcopy,且將lua中的對應命令改爲絕對路徑.
- 純單字模式:
- 爲了獲得最大確定性, 增加純單輸入模式, 此模式下禁用智能詞, 在打到第二個字的第二碼時, 自動頂上前一字.
- 純單模式默認關閉.
- 自定義 lua 宏:
- 實現五個類型的自定義宏:
- 提示: 作爲提示顯示在候選處, 可用於快捷短語或作爲其宏的功能提示.
- 開關: 可用於顯示輸入法的功能開關狀態, 並進行切換.
- 單選: 同開關類似, 顯示開關狀態並在多個選項之間切換.
- Shell: 適用於 Linux/Mac 系統, 提供命令宏功能, 執行預先配置的命令或脚本.
- 求值: 提供 lua 擴展, 允許配置 lua 語句, 函數或 lua 對象.
- 當前預置的宏 (smyh.schema.yaml):
/help
: 類似原有的zhelp
開關管理, 提供一些常用開關和單選的管理操作./date
和/time
: 快捷輸入日期時間./dist
: 查詢當前 librime 版本./uni
: unicode輸入法,通過/uni/编码
方式輸入.
- 擴展預置宏 (smyh.custom.yaml):
/quick
: 快捷短語示例./calc
: 計算器, 簡易 lua 宏示例, 通過/calc/32*2
方式調用./echo
: 簡易 shell 宏示例, 在 Linux/Mac 下通過/echo/hello/world
方式調用.
- 實現五個類型的自定義宏:
- 四馬兩吃:
- 三碼詞庫只收录 CJK 字集, 合計約两萬一千字.
- 如需臨時輸入 CJK 以外的非常用字, 可借助
四碼+Tab
直接上屏的方式.- 四碼单字的取碼規則爲:
- 兩根字: 首根大碼 + 次根大碼 + 次根小碼 + 首根小碼.
- 三根字: 首根大碼 + 次根大碼 + 末根大碼 + 末根小碼.
- 四根及以上字: 首根大碼 + 次根大碼 + 第三根大碼 + 末根大碼.
- 對於單字或詞語1四碼全碼, 可以四碼直出,
Tab
上屏. 當純單模式啓用時, 出四碼單字; 否則出四碼字詞.
對於稍早的 librime-lua 版本, 新式的定義
lua_translator@*smyh.core_translator
不受支持, 可通過手動複製rime.lua
文件及調整smyh.custom.yaml
的方式工作. 對於更古早的版本, 可能本方案使用的諸多特性都不受支持, 若不進行升級將無法正常使用.
- 字頻數據: 25亿字语料汉字字频表, 繁體字頻表.
- 字根及拆分數據: yuhao/schema/yuhao_chaifen.dict.yaml.
- 宇浩拼音: yuhao/schema/yuhao_pinyin.dict.yaml.
吉旦餅的設計與開發非一日之功, 亦非一人之力, 感謝:
- 三碼鄭碼 和 逸碼 的製作人 至至 和 小泥巴, 讓我有機會尝試頂功的輸入體驗, 也爲宇三和吉旦餅的設計提供了絶佳的範例;
- 宇浩輸入法 製作人 朱宇浩, 不僅開發製作了宇浩, 還爲我提供了額外的文件, 數據, 算法支持和其他幫助;
- 王牌人肉測試員 阿吉 和 錢多多, 在開發體驗過程中予我以鼓励, 並給出相當多的優化建議;
- rime, GitHub, Vim 和其他依賴性工具, 語料及字頻數據等, 此處不再一一細表.
Footnotes
-
關於四碼詞語,在吉旦餅的發版中是没有預設的,用户如有需要,請自行在smyh.words.dict.yaml中添加或import 詞典文件. 可不設編碼添加詞組,部署時會自動編碼.編碼規則爲:①二字词"首字首根大碼 + 首字次根大碼 + 次字首根大碼 + 次字次根大碼", ②三字詞: "首字首根 + 次字首根 + 末字首根 + 末字次根", ③四字及以上詞: "首字首根 + 次字首根 + 第三字首根 + 末字首根" ↩