小狼毫(Weasel)的常用调教

下载

猛戳我下载

调教

  • 【朙月拼音】模糊音定製模板

使用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.yaml

D:\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.yaml

D:\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 不得包含(所有涉及同步的文件系統)文件名中非法的字符;建議不要用中文,只用小寫字母、數字、橫線和下劃線。


转载请注明出处(http://blog.pcwuyu.com/2014/506.html)
添加新评论