宇浩三码顶 是一个 宇浩输入法 (GitHub: forfudan/yuhao) 的衍生方案, 基于宇浩的字根布局和拆分数据, 使用三码定长顶字的输入方式, 在不改变原宇浩的布局与拆分的前提下, 实现和宇浩标准版间的无缝切换.
點此進入 宇浩輸入法主頁, 查看字根圖及其他信息.
- 取码方法:
- 单根字: 大码+小码, 再补加大码.
- 女:
女: Cn
,CnC
. - 一:
一: Fi
,FiF
.
- 女:
- 两根字: 首根大码+次根大小码.
- 字:
宀子: ObVk
,OVk
. - 配:
酉己: GoBj
,GBj
.
- 字:
- 多根字: 首次末根大码.
- 的:
白勹丶: EbWyOd
,EWO
. - 是:
日一龰: JrFiNf
,JFN
.
- 的:
- 单根字: 大码+小码, 再补加大码.
- 简码:
- 简码分为一简和二简, 由一码或二码后补分号构成, 分号也可以
z
键代替. - 由于三码中, 二简码长没有收益, 故二简设置较少, 仅为避重而设.
- 简码分为一简和二简, 由一码或二码后补分号构成, 分号也可以
- 反查:
- 一般情况下, 按组合键
Ctrl
+Shift
+c
切换拆分提示. - 存在候选时, 按下
/
键实时切换拆分提示. - 上屏一字后, 按
z
键反查该字拆分. - 按
z
键后输入字或词的全拼, 反查其拆分.
- 一般情况下, 按组合键
- 智能选重:
- 为了去重, 引入 文心两仪/小锋(首创) 和 三码郑码 的 智能选重.
- 例如 "時間" 一词, 编码为
jhakjr
, 其中jha
/kjr
的首选分别是 "峙"/"沓", 为了打出 "時間", 引入该六码词.
- 延迟顶:
- 为了解决智能词在打错一码的情况下顶错字, 通过 lua 翻译器实现了延迟顶.
- 基本逻辑是将输入串按全/简编码模式分词为延迟串和活动串, 如此即使打错, 延迟串并没有直接上屏, 可以回删并修正.
- 延迟顶完全使用 lua_translator 作为主翻译器, 不使用 table_translator.
- 清空活動串:
- 一般的非延遲頂輸入方案中, 有時會使用回車鍵作爲清空錯碼的快捷鍵. 但延遲頂如果也這麽做, 則會錯誤清除延遲上屏的字符.
- 因此本方案因此本方案引入清理活動串的功能, 通過自定義 lua_processor, 實現按回車時清理活動串.
- 例如:
时[间接]p
狀態下激活此功能時, 預編輯串變爲[时]jac
, 卽清理了活動編碼p
.
- 打断施法:
- 有时我们可能希望输入双首选字, 却触发了智能选重, 这时就需要打断施法.
- 可以在打完全码
jhakjr
后追加分号或z
来 "打断施法", 上屏首选单字 "峙, 同时保留编码kjr
和候选 "沓".
- 内嵌候選
- 通过编辑首选的 preedit 串, 将候选项展示在嵌入式编码中.
- 内嵌候选功能默认开启, 可通过
Ctrl
+Shift
+e
开关.
- 純單字模式:
- 爲了獲得最大確定性, 增加純單輸入模式, 此模式下禁用智能詞, 在打到字的第二碼時, 自動頂上前一字.
- 純單模式默認關閉, 可通過
Ctrl
+Shift
+s
開關.
- 開關管理:
- 輸入
zhelp
進入開關管理模式, 提供對部分 switch 的開關功能. - 上述 内嵌候選, 純單模式 均可在此開關.
- 輸入
- 四馬兩吃:
- 宇浩三码顶只收录 CJK 字集, 合计约两万一千字.
- 如需临时输入 CJK 以外的非常用字, 可借助临时官宇模式; 若要连续输入生僻字, 请切换官宇.
- 對於單字或詞語四碼全碼, 可以四碼直出. 當純單模式啓用時, 出四碼單字; 否則出四碼字詞.
拼音反查和 "二二得四" 功能需要调用官宇码表, 可手动导入
yuhao_pinyin.{dict,schema}.yaml
,yuhao.{quick,full}.dict.yaml
,yuhao.dict.yaml
等, 或安装官宇 rime 包. "智能选重" 词条收录自官宇简繁词库. "外挂词库" 词条收录自官宇简繁词库.
對於較古早的 librime-lua 版本, 新式的定義
lua_translator@*smyh.core_translator
不受支持, 可通過手動複製rime.lua
文件及調整smyh.custom.yaml
的方式工作. 對於更古早的版本, 可能本方案使用的諸多特性都不受支持, 若不進行升級將無法正常使用.
當前 Windows 平臺下, Weasel 0.15.0 已更新最新 librime, 無須以下配置. Weasel 0.15.0 以前的版本, 需要更新最新的 librime 庫, 從而獲取滿足條件的 librime-lua 版本. 在 小狼毫 托盤菜單中選擇打開 程序文件夹 並 退出算法服務, 然後將下載解壓得到的 rime.dll 文件替換進去, 再從開始菜單中啓動 小狼毫算法服務.
- 需要 Go 语言开发环境.
- 只经过 Linux 环境测试, 不保证其他平台可用性.
- 可在
table/smyh_simp.txt
中预先定制一简和二简. - 执行
generate.sh
开始生成码表, 输出方案文件到schema/
目录. - 执行
replaceibus.sh
将已生成的方案文件替换到~/.config/ibus/rime/
目录. - 执行
packagezip.sh
将已生成的方案文件打包到/tmp/smyh-xxx.zip
中.
- 字频数据: 25亿字语料汉字字频表.
- 字根及拆分数据: yuhao/schema/yuhao_chaifen.dict.yaml.
- 宇浩拼音: yuhao/schema/yuhao_pinyin.dict.yaml.
在本方案問世之前, 筆者曾使用了相當一段時間的 逸碼, 也曾一度使用 三碼鄭碼, 本身對於 頂字 這一輸入方式是有偏愛的. 然則 三碼鄭碼 對空格鍵, 分號鍵的運用, 以及其多達兩百有余的簡碼數量使我没能繼續堅持使用下去; 而 逸碼 的二碼開頂固然帶來了十分優秀的輸入體驗, 但其變長編碼的不確定性也讓我最終選擇了跑路.
至於説 宇浩三碼頂, 最初衹是我試圖開發 頂功方案 的眾多試驗性項目之一, 大量借鉴了三鄭的設計, 給出了一份勉强算是能用的宇三碼表. 預料中, 它大抵是要草草地出世, 又糊涂地消失的. 誰料時至今日我竟爲宇三實現了諸多花裏胡哨的技能, 並持續使用了月余, 四碼直出官宇候選的技能更是給了我一種奇妙的輸入體驗, 也彌補了宇三大字集檢字的一些不足.
所以, 感謝:
- 三碼鄭碼 和 逸碼 的製作人 至至 和 小泥巴, 讓我有機會尝試頂功的輸入體驗, 也爲宇三的設計提供了絶佳的範例;
- 宇浩輸入法 製作人 朱宇浩, 不僅開發製作了宇浩, 還爲我提供了額外的文件, 數據和其他幫助;
- 王牌人肉測試員 阿吉 和 錢多多, 在開發體驗過程中予我以鼓励, 並給出相當多的優化建議;
- rime, GitHub, Vim 和其他依賴性工具, 語料及字頻數據等, 此處不再一一細表.