居戎氏
居戎氏
@ztl8702 Excited.
可以。 比如這個: https://github.com/biopolyhedron/rime_schemata
很好。 提兩個問題: 1、這個服務器是必須的嘛? 我看客戶端要實現不少邏輯,他一直是主動操作的。是不是意味着設計存入數據庫的信息,以靜態數據文件的形式記錄在一個GitHub代碼庫,供客戶端查詢,也能提供相同的服務呢。 2、如何更新數據庫中的信息。如,一位作者向代碼庫提交了新的修改。
繼續上次的提問: 1、必須有服務器的理由,我能想到的也就是統計下載量這事兒。搞這個統計的話,就意味着下載點被「中心化」了。有點背離「方案可由作者自發完成發佈」的初衷。 2、如何更新中心服務器的數據: - 服務器維護者手動更新:可能不及時,更糟的是過時的信息與實際代碼庫內容不一致;增加維護者的管理工作。 - 配方維護者手動提交更新:增加了額外的負擔,可能因此更新不及時或缺失;我原先設想的免服務器方案核心目標是鼓勵配方作者發佈配方,儘量簡化其操作步驟。輸入法作者不像軟件包管理的打包者那樣肯於投入時間和精力維護軟件包,我認爲這是本品不能照搬軟件包管理方式的重要理由,必須大幅簡化。 - 如要同步更新保存在服務器上的數據,可以做一個GitHub應用,讓作者註冊配方時授權其監聽向配方代碼庫推送代碼的事件。可是要求使用這種機制也會成爲阻攔發佈者的一道門檻。 通過回憶過去的討論,我現在想,服務器還是只負責簡單地記錄配方的地址爲好。沒有重覆的數據,就不需要同步。
請具體描述重現問題的條件和步驟。 哪款輸入法軟件? 文字「無法正常輸入」的表現是什麼?
librime/src/dict/ 主要有固态词典和用户词典。 前者是只读的,包含YAML源文件里的数据。在部署阶段生成。 固态词典需要 `build/*.table.bin` 和 `build/*.prism.bin` 配合使用,其数据结构设计为按输入码查询,不支持中文联想。`build/*.reverse.bin` 用于中文反查编码,也许可以用作联想查询。你也可以自己设计一个专用的词典。 用户词典`*.userdb/`记录用户输入产生的新词及对词频的更新。 “打多少次才提一步”这个说法不成立。重码字词的候选顺序是按各个字词的权重从大到小排列。
算法比较复杂。简单地说就是历史上历次用户输入对词频更新的叠加值。对于没输入过的字词,权重比较的是词典里的词频。总之,每个字词独立统计,不做字词之间的比较,也不会考察在候选列表中的顺序,因此没有“步长”这个概念。事实上“记录和调整选定字词在重码字词中的位置”这种机制是不实际的,因为同一个字可以由不同的查询方法(例如拼音取决于输入全拼或简拼以及模糊音设置等)出现在不固定的候选列表里。
@windhamwong 请参考 https://github.com/rime/home/wiki/RimeWithSchemata#%E8%BC%B8%E5%85%A5%E6%B3%95%E5%BC%95%E6%93%8E%E8%88%87%E5%8A%9F%E8%83%BD%E7%B5%84%E4%BB%B6
沒有現成的邏輯能支持你想要的行爲呀。 這不止是一個空格鍵的事了。首先需要區分輸入模式和選字模式。Rime現在無模式的工作流程是每當輸入串改變都做轉換,並更新候選列表。你要改爲有一個開關按鍵手動控制轉換和顯示候選。 我給你的文檔,介紹了現有流程如何工作,也許能幫助你分析代碼。
這個語法就不對吧。 `auto_select_pattern: 'm'` 如果正確配置,他的效果是:一旦輸入碼裏出現了 `m` 就立即上屏。這恐怕不太好用。