Skip to content

lost-melody/rime-smyh

Repository files navigation

吉旦餅

吉旦餅, 基於 宇浩輸入法 (GitHub: forfudan/yuhao) 製作, 亂序字根, 三碼定長, 延遲頂字. 「吉旦餅」其名來自三名主要開發人: 阿吉, forFudan, 王牌餅乾, 又取義於 華夫餅 (wafel), 其漢譯應有 "雞蛋餅" 之義.

宇浩三碼頂 相關内容可在保留分支 beta 中找到.

一些说明

  • 方案文件下載.
  • 暫無字根圖, 用反查練就完事了.
    • 下載的 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 的方式工作. 對於更古早的版本, 可能本方案使用的諸多特性都不受支持, 若不進行升級將無法正常使用.

數據源聲明

鳴謝

吉旦餅的設計與開發非一日之功, 亦非一人之力, 感謝:

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

Footnotes

  1. 關於四碼詞語,在吉旦餅的發版中是没有預設的,用户如有需要,請自行在smyh.words.dict.yaml中添加或import 詞典文件. 可不設編碼添加詞組,部署時會自動編碼.編碼規則爲:①二字词"首字首根大碼 + 首字次根大碼 + 次字首根大碼 + 次字次根大碼", ②三字詞: "首字首根 + 次字首根 + 末字首根 + 末字次根", ③四字及以上詞: "首字首根 + 次字首根 + 第三字首根 + 末字首根"