forFudan / rime-smyh

宇浩三码顶:三碼定長,延遲頂字,分號出簡,不是頂功。

Home Page:https://zhuyuhao.com/yuhao/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

宇浩三码顶

宇浩三码顶 是一个 宇浩输入法 (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 中.

数据源声明

鳴謝

在本方案問世之前, 筆者曾使用了相當一段時間的 逸碼, 也曾一度使用 三碼鄭碼, 本身對於 頂字 這一輸入方式是有偏愛的. 然則 三碼鄭碼 對空格鍵, 分號鍵的運用, 以及其多達兩百有余的簡碼數量使我没能繼續堅持使用下去; 而 逸碼 的二碼開頂固然帶來了十分優秀的輸入體驗, 但其變長編碼的不確定性也讓我最終選擇了跑路.

至於説 宇浩三碼頂, 最初衹是我試圖開發 頂功方案 的眾多試驗性項目之一, 大量借鉴了三鄭的設計, 給出了一份勉强算是能用的宇三碼表. 預料中, 它大抵是要草草地出世, 又糊涂地消失的. 誰料時至今日我竟爲宇三實現了諸多花裏胡哨的技能, 並持續使用了月余, 四碼直出官宇候選的技能更是給了我一種奇妙的輸入體驗, 也彌補了宇三大字集檢字的一些不足.

所以, 感謝:

  • 三碼鄭碼逸碼 的製作人 至至小泥巴, 讓我有機會尝試頂功的輸入體驗, 也爲宇三的設計提供了絶佳的範例;
  • 宇浩輸入法 製作人 朱宇浩, 不僅開發製作了宇浩, 還爲我提供了額外的文件, 數據和其他幫助;
  • 王牌人肉測試員 阿吉錢多多, 在開發體驗過程中予我以鼓励, 並給出相當多的優化建議;
  • rime, GitHub, Vim 和其他依賴性工具, 語料及字頻數據等, 此處不再一一細表.

About

宇浩三码顶:三碼定長,延遲頂字,分號出簡,不是頂功。

https://zhuyuhao.com/yuhao/

License:Other


Languages

Language:Lua 65.4%Language:Go 32.4%Language:Shell 2.2%