小狼毫(Weasel)的常用调教
原链接:http://blog.pcwuyu.com/2014/506.html)
原分类:计算机
下载
调教
- 【朙月拼音】模糊音定製模板
使用luna拼音的话修改luna_pinyin.custom.yaml
,使用luna简化字的话新建luna_pinyin_simp.custom.yaml
,输入的内容是一样的。
# luna_pinyin.custom.yaml
#
# 【朙月拼音】模糊音定製模板
# 佛振配製 :-)
#
# 位置:
# ~/.config/ibus/rime (Linux)
# ~/Library/Rime (Mac OS)
# %APPDATA%\Rime (Windows)
#
# 於重新部署後生效
#
patch:
'speller/algebra':
- erase/^xx$/ # 第一行保留
# 模糊音定義
# 需要哪組就刪去行首的 # 號,單雙向任選
- derive/^([zcs])h/$1/ # zh, ch, sh => z, c, s
- derive/^([zcs])([^h])/$1h$2/ # z, c, s => zh, ch, sh
#- derive/^n/l/ # n => l
#- derive/^l/n/ # l => n
# 這兩組一般是單向的
#- derive/^r/l/ # r => l
#- derive/^ren/yin/ # ren => yin, reng => ying
#- derive/^r/y/ # r => y
# 下面 hu <=> f 這組寫法複雜一些,分情況討論
#- derive/^hu$/fu/ # hu => fu
#- derive/^hong$/feng/ # hong => feng
#- derive/^hu([in])$/fe$1/ # hui => fei, hun => fen
#- derive/^hu([ao])/f$1/ # hua => fa, ...
#- derive/^fu$/hu/ # fu => hu
#- derive/^feng$/hong/ # feng => hong
#- derive/^fe([in])$/hu$1/ # fei => hui, fen => hun
#- derive/^f([ao])/hu$1/ # fa => hua, ...
# 韻母部份
#- derive/^([bpmf])eng$/$1ong/ # meng = mong, ...
- derive/([ei])n$/$1ng/ # en => eng, in => ing
- derive/([ei])ng$/$1n/ # eng => en, ing => in
# 樣例足夠了,其他請自己總結……
# 反模糊音?
# 誰說方言沒有普通話精確、有模糊音,就能有反模糊音。
# 示例爲分尖團的中原官話:
#- derive/^ji$/zii/ # 在設計者安排下鳩佔鵲巢,尖音i只好雙寫了
#- derive/^qi$/cii/
#- derive/^xi$/sii/
#- derive/^ji/zi/
#- derive/^qi/ci/
#- derive/^xi/si/
#- derive/^ju/zv/
#- derive/^qu/cv/
#- derive/^xu/sv/
# 韻母部份,只能從大面上覆蓋
#- derive/^([bpm])o$/$1eh/ # bo => beh, ...
#- derive/(^|[dtnlgkhzcs]h?)e$/$1eh/ # ge => geh, se => sheh, ...
#- derive/^([gkh])uo$/$1ue/ # guo => gue, ...
#- derive/^([gkh])e$/$1uo/ # he => huo, ...
#- derive/([uv])e$/$1o/ # jue => juo, lve => lvo, ...
#- derive/^fei$/fi/ # fei => fi
#- derive/^wei$/vi/ # wei => vi
#- derive/^([nl])ei$/$1ui/ # nei => nui, lei => lui
#- derive/^([nlzcs])un$/$1vn/ # lun => lvn, zun => zvn, ...
#- derive/^([nlzcs])ong$/$1iong/ # long => liong, song => siong, ...
# 這個辦法雖從拼寫上做出了區分,然而受詞典制約,候選字仍是混的。
# 只有真正的方音輸入方案纔能做到!但「反模糊音」這個玩法快速而有效!
# 模糊音定義先於簡拼定義,方可令簡拼支持以上模糊音
- abbrev/^([a-z]).+$/$1/ # 簡拼(首字母)
- abbrev/^([zcs]h).+$/$1/ # 簡拼(zh, ch, sh)
# 以下是一組容錯拼寫,《漢語拼音》方案以前者爲正
- derive/^([nl])ve$/$1ue/ # nve = nue, lve = lue
- derive/^([jqxy])u/$1v/ # ju = jv,
- derive/un$/uen/ # gun = guen,
- derive/ui$/uei/ # gui = guei,
- derive/iu$/iou/ # jiu = jiou,
# 自動糾正一些常見的按鍵錯誤
- derive/([aeiou])ng$/$1gn/ # dagn => dang
- derive/([dtngkhrzcs])o(u|ng)$/$1o/ # zho => zhong|zhou
- derive/ong$/on/ # zhonguo => zhong guo
- derive/ao$/oa/ # hoa => hao
- derive/([iu])a(o|ng?)$/a$1$2/ # tain => tian
# 分尖團後 v => ü 的改寫條件也要相應地擴充:
#'translator/preedit_format':
# - "xform/([nljqxyzcs])v/$1ü/"
- 導入其他來源的碼表
首先,如果來源是一份比較完整的(比方說拼音)詞庫,則使用了該碼表的輸入方案,已成爲一種「新品牌」的拼音輸入方案。
因此建議,將此碼表製成 Rime 詞典用在自定義輸入方案裏;而不是把他導入朙月拼音(繁體)或簡化字拼音的用戶詞典。
要點是:
將碼表改寫爲 my_pinyin.dict.yaml
;詞典名 my_pinyin
與預設的拼音詞典不重名,設定部分可照抄參考預設的拼音輸入方案,建立 my_pinyin.schema.yaml
;設定與其相關聯的詞典名:
# ...
translator:
dictionary: my_pinyin
個人修改版的 my_pinyin.*.yaml 放置在「用戶資料夾」;參考《定製指南》啓用新方案、完成部署。
如果你認定要將碼表導入已存在的用戶詞典,則要注意:
碼表文件的格式是否 Rime 所要求的 UTF-8 (no BOM) 編碼
文本行是否爲製表符分隔,至少有文字、編碼兩列,及一列可選的頻次
文字的字形(繁、簡字)是否與源碼表一致
編碼的形式是否源碼表中定義的標準形式
第一點,有一臺專業的文本編輯器就控制住啦。比如VIM裏面用命令
:se fenc=utf8 nobomb ff=unix
轉換、保存文件就中啦。
第二點,如果來源文件的資料格式不同,就需要藉助 regex 批量替換的操作,或寫腳本來完成轉換。
只有詞條、沒有編碼?請重新考慮先時我提出的建議。因爲,製作固態詞典,可以利用【八股文】,以及自動編碼器。
第三點,如果字形與目標詞典不一致,推薦用 opencc 完成碼表的繁、簡轉換。
第四點,凡是編碼爲源碼表中未出現過的形式,如通過「拼寫運算」實現的簡拼、異拼,又如編碼中的拼寫錯誤,都將導致該條記錄成爲用戶詞典中的無效數據,因爲無法通過正常的輸入檢索到。
- 同步用戶資料
藉助移動存儲設備,或在線存儲服務如Dropbox,在多臺電腦及不同系統之間同步用戶詞典和用戶設定。
- 設定同步位置
默認地,詞典快照備份到 RIME用戶文件夾\sync\UUID 這個地方。如果你要用 Dropbox 或 U盤在不同機器/系統之間同步用戶詞典,則需要設定同步的目標文件夾,如 C:\RimeSync
。
直接編輯用戶文件夾下的 installation.yaml
,添加:
sync_dir: 'D:\Dropbox\RimeSync'
又如 Mac 上添加:
sync_dir: '/Users/fred/Dropbox/RimeSync'
又如使用 USB 存儲來同步:(真實案例)
sync_dir: '/Volumes/USBDRIVE/RimeSync'
默認地,每套 Rime 會隨機生成一個 UUID 作爲標識。不同 installation ID 可區分來自不同機器/系統的用戶詞典。
與安裝在其他系統上的 Rime 同步後,同步文件夾呈如下佈局:
D:\Dropbox\RimeSync\id-xxx\luna_pinyin.userdb.txt
D:\Dropbox\RimeSync\id-xxx\terra_pinyin.userdb.txt
D:\Dropbox\RimeSync\id-xxx\installation.yaml
D:\Dropbox\RimeSync\id-xxx\default.custom.yaml
D:\Dropbox\RimeSync\id-xxx\weasel.custom.yamlD:\Dropbox\RimeSync\id-yyy\terra_pinyin.userdb.txt
D:\Dropbox\RimeSync\id-yyy\installation.yaml
D:\Dropbox\RimeSync\id-yyy\default.custom.yaml
D:\Dropbox\RimeSync\id-yyy\squirrel.custom.yamlD:\Dropbox\RimeSync\id-zzz\luna_pinyin.userdb.txt
D:\Dropbox\RimeSync\id-zzz\installation.yaml
D:\Dropbox\RimeSync\id-zzz\alternative.yaml
D:\Dropbox\RimeSync\id-zzz\luna_pinyin.custom.yaml
同步時,依次將各子文件夾中的詞典快照合併到用戶詞典,最後爲合併後的用戶詞典生成一份新的快照文件。 另外,還會把用戶文件夾中非自動生成的 YAML 文件及 .txt 文件單向 備份 到同步文件夾。
有些特別講究命名的用家,不喜隨機生成的 UUID,可編輯 installation.yaml
,取一個有意義的 ID,如:
installation_id: 'fred-win7-desktop'
又如:
installation_id: 'fred-macbook'
當心!因爲 Rime 要以這個 ID 爲名創建文件夾,因此 ID 不得包含(所有涉及同步的文件系統)文件名中非法的字符;建議不要用中文,只用小寫字母、數字、橫線和下劃線。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。