Ubuntu 上安裝使用 ibus-rime(超實用)


RIME/中州韻輸入法引擎(Rime Input Method Engine),是一個跨平台的輸入法算法框架。基於這個算法框架開發的輸入法,可以粗暴的稱為 Rime 輸入法。然而,每個平台都有各自的名稱:

  • 【中州韻】 ibus-rime → Linux
  • 【小狼毫】 Weasel → Windows
  • 【鼠須管】 Squirrel → Mac OS X

其實這個都很好理解,不同平台不同的軟件嘛。我在什么平台我下載對應的軟件安裝就行了,根本不用 Care 其他平台叫什么名字。

但我要吐槽 RIME 的官方文檔,居然把各平台的使用說明雜糅在一起,其最大效果就是讓新手「頭暈」。

應該把不同平台的軟件使用說明獨立出來,比如小狼毫使用說明、鼠須管使用說明、中州韻使用說明。我用 ibus-rime,只看 ibus-rime 的說明就可以了嘛,干嘛要給我看小狼毫和鼠須管的使用說明。

在 Linux 下有兩大主要的輸入法支持框架:fcitx 和 IBus。

  • fcitx 是 Free Chinese Input Toy for X 的簡稱。
  • IBus 是 Intelligent Input Bus 的簡稱。

Rime 二者都支持,有 ibus-rime 和 fcitx-rime 兩個版本。值得注意的是,基於 Fcitx 輸入法框架的 fcitx-rime 是第三方軟件,由 Fcitx 團隊開發和維護。參閱 Linux 下的輸入法 fcitx vs ibus

ibus-rime 安裝

Ubuntu 上直接使用命令安裝:

sudo apt-get install ibus-rime

# 五筆86、袖珍簡化字拼音、五筆畫
sudo apt-get install librime-data-wubi librime-data-pinyin-simp librime-data-stroke-simp

安裝更多輸入方案,參閱 RimeWithIBus · GitHub

按組合鍵 Ctrl+`F4 鍵喚出輸入方案選單,由此調整 Rime 輸入法最常用的選項。您可通過方案選單切換已經安裝的輸入方案。

ibus-rime 必知必會

  • 輸入法代號:ibus-rime
  • 用戶資料夾: ~/.config/ibus/rime/
  • 共享資料夾: /usr/share/rime-data/

共享資料夾包含預設輸入方案的源文件。 這些文件屬於 Rime 所發行軟件的一部份,在訪問權限控制較嚴格的系統上對用戶是只讀的,因此謝絕軟件版本更新以外的任何修改—— 一旦用戶修改這里的文件,很可能影響后續的軟件升級或在升級時丟失數據。

在「部署 Rime」操作時,將用到這里的輸入方案源文件、並結合用戶定制的內容來編譯預設輸入方案。

「用戶資料夾」數據說明

用戶資料夾則包含為用戶准備的內容,如

  • 〔全局設定〕 default.yaml
  • 〔發行版設定〕 ibus-rime.yaml
  • 〔預設輸入方案副本〕 <方案標識>.schema.yaml ibus-rime.schema.yaml
  • ※〔安裝信息〕 installation.yaml
  • ※〔用戶狀態信息〕 user.yaml

編譯輸入方案所產出的二進制文件:

  • 〔Rime 棱鏡〕 <方案標識>.prism.bin
  • 〔Rime 固態詞典〕 <詞典名>.table.bin
  • 〔Rime 反查詞典〕 <詞典名>.reverse.bin

記錄用戶寫作習慣的文件:

  • ※〔用戶詞典〕 <詞典名>.userdb.kct
  • ※〔用戶詞典快照〕 <詞典名>.userdb.txt<詞典名>.userdb.kct.snapshot 見於同步文件夾

以及用戶自己設定的:

  • ※〔用戶對全局設定的定製信息〕 default.custom.yaml
  • ※〔用戶對預設輸入方案的定製信息〕 <方案標識>.custom.yaml
  • ※〔用戶自製輸入方案〕及配套的詞典源文件

注:以上標有 ※ 號的文件,包含用戶資料,您在清理文件時要注意備份!

ibus-rime 定制

定制指南

當用戶需要對 Rime 中的各種設定做小幅的調節,最直接、但不完全正確的做法是:編輯「共享資料夾」中那些 .yaml 文檔(/usr/share/rime-data/ )。

這種方法有很大缺陷:

  • 當 Rime 軟件升級時,也會升級各種設定檔、預設輸入方案。用戶編輯過的文檔會被覆蓋為更高版本,所做調整也便丟失了。
  • 軟件升級后,你不能將備份文件直接覆蓋升級后的文件。這將失去本次升級所新增和修復的功能。唯一的方法是,重新編輯升級后的文件。

因此,對於隨 Rime 發行的設定檔及預設輸入方案,推薦的定制方法是:

在「用戶資料夾」下創建 .yaml 定制文檔;比如

  • default.yaml 的定制文件名為 default.custom.yaml
  • luna_pinyin 的定制文件名為 luna_pinyin.custom.yaml
  • luna_pinyin_simp 的定制文件名為 luna_pinyin_simp.custom.yaml
  • symbols.yaml 的定制文件名為 symbols.custom.yaml

規范為在文件名主體(ID)和 .yaml 之間增加次級擴展名 .custom。定制文檔的書寫格式為:

patch:
  "一級設定項/二級設定項/三級設定項": 新的設定值
  "另一個設定項": 新的設定值
  "再一個設定項": 新的設定值
  "含列表的設定項/@n": 列表第n個元素新的設定值,從0開始計數
  "含列表的設定項/@last": 列表最后一個元素新的設定值
  "含列表的設定項/@before 0": 在列表第一個元素之前插入新的設定值(不建議在補丁中使用)
  "含列表的設定項/@after last": 在列表  "一級設定項/二級設定項/三級設定項": 新的設定值最后一個元素之后插入新的設定值(不建議在補丁中使用)
  "含列表的設定項/@next": 在列表最后一個元素之后插入新的設定值(不建議在補丁中使用)

就是這樣:patch 定義了一組「補丁」,以源文件中的設定為基礎,寫入新的設定項、或以新的設定值取代現有設定項的值。

每次修改配置文件,你需要重新部署來生效。

重新部署的操作方法

  • 點擊輸入法的程序指示器,選擇「部署」

  • 點擊輸入法狀態欄上的 ⟲ (Deploy) 按鈕。如果找不到狀態欄,在終端輸入以下命令,可觸發自動部署:

    rm ~/.config/ibus/rime/default.yaml; ibus-daemon -drx
    

定制每頁候選數

Rime 中,默認每頁至多顯示 5 個候選項,而允許的范圍是 1〜9(個別 Rime 發行版可支持 10 個候選)。

設定每頁候選個數的默認值為 9,在用戶目錄建立定制文檔 :

vi ~/.config/ibus/rime/default.custom.yaml

patch:
  "menu/page_size": 9

重新部署即可生效。

或者重啟 ibus-deamon

ibus restart

注意! 如果 default.custom.yaml 里面已經有其他設定內容,只要以相同的縮進方式添加 patch: 以下的部分,不可重復 patch: 這一行。

定制方案選單

vi ~/.config/ibus/rime/default.custom.yaml

# default.custom.yaml

patch:
  schema_list:  # 對於列表類型,現在無有辦法指定如何添加、消除或單一修改某項,於是要在定製檔中將整個列表替換!
    - schema: luna_pinyin
    - schema: cangjie5
    - schema: luna_pinyin_fluency
    - schema: luna_pinyin_simp
    - schema: my_coolest_ever_schema  # 這樣就啓用了未曾有過的高級輸入方案!其實這麼好的方案應該排在最前面哈。

調整方案候選順序,增加輸入法方案,或者通過 # 注釋內容將不用的方案移除候選菜單。

重新部署生效。

定制字體字號

GNOME 桌面可以使用擴展 IBus Tweaker

以下方法不適用 ibus-rime:

# default.custom.yaml

patch:
  "style/font_face": "明蘭"  # 字體名稱,從記事本等處的系統字體對話框裏能看到
  "style/font_point": 16     # 字號,只認數字的,不認「五號」、「小五」這樣的

定制皮膚

沒有必要浪費時間,默認就簡潔美觀。

輸入符號

符號文件 /usr/share/rime-data/symbols.yaml 開頭已經說明了使用方法:

# Usage: patch your Rime schema to enable /X symbols:
# patch:
#   punctuator/import_preset: symbols
#   recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'

想在朙月拼音·簡化字 luna_pinyin_simp 方案下輸入符號,就新建 luna_pinyin_simp.custom.yaml

patch:
  punctuator/import_preset: symbols
  recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'

重新部署生效。

輸入符號請鍵入識別碼:

  • 星號 /xh
  • 箭頭 /jt
  • 數字 /1
  • 更多符號參閱文件 symbols.yaml

其他方案下輸入符號,照葫蘆畫瓢。

符號自定義

拷貝 /usr/share/rime-data/symbols.yaml~/.config/ibus/rime/symbols.custom.yaml。在末尾添加自定義符號:

# 個人常用信息
    '/yx': [ xiaoming@gmail.com, xiaoming@163.com, 1234567910 ] 
# 快速輸入勾和叉 
    '/gc': [ ✓, ☑, ✗, ☒ ] 

想在朙月拼音·簡化字 luna_pinyin_simp 方案下輸入符號,就修改 luna_pinyin_simp.custom.yaml 文件內容為:

patch:
  punctuator/import_preset: symbols.custom
  recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'

重新部署生效。

朙月拼音·簡化字擴展詞庫

朙(míng)同“明”

下載詞庫,將下面幾個文件的 luna_pinyin 修改為朙月拼音·簡化字 luna_pinyin_simp

luna_pinyin.hanyu.dict.yaml
luna_pinyin.poetry.dict.yaml
luna_pinyin.cn_en.dict.yaml
luna_pinyin.extended.dict.yaml

文件名和文件內容都需要同步修改。比如 luna_pinyin_simp.extended.dict.yaml,並同步修改文件內的方案 ID。

import_tables:
  - luna_pinyin
  - luna_pinyin_simp.hanyu
  - luna_pinyin_simp.poetry
  - luna_pinyin_simp.cn_en

接着將四個文件移動到用戶資料夾 ~/.config/ibus/rime 下。

其后,將 luna_pinyin.custom.yaml 中的內容添加到 luna_pinyin_simp.custom.yaml 中。

patch:
  punctuator/import_preset: symbols
  recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'
  # 載入朙月拼音擴充詞庫
  translator/dictionary: luna_pinyin_simp.extended
  # 改寫拼寫運算,使得含西文的詞彙(位於 luna_pinyin.cn_en.dict.yaml 中)不影響簡拼功能(注意,此功能只適用於朙月拼音系列方案,不適用於各類雙拼方案)
  # 本條補靪只在「小狼毫 0.9.30」、「鼠鬚管 0.9.25 」、「Rime-1.2」及更高的版本中起作用。
  speller/algebra/@before 0: xform/^([b-df-hj-np-tv-z])$/$1_/

重新部署生效。

其他擴展詞庫,xiaoTaoist 制作的詞庫擴展包,GitHub 地址

增加自己的詞庫

我們可以仿照上一步的詞典文件建立自己額外的詞典,增加自己的詞匯。例如,建立名為 my.dict.yaml 的文件,然后參照 luna_pinyin_simp.cn_en.dict.yaml 添加幾個自己常用的詞匯,文件內容如下:

# my.dict.yaml 文件內容
# Rime dictionary
# encoding: utf-8
#

---
name: my
version: "2020.05.28"
sort: by_weight
use_preset_vocabulary: true
...

GitHub	github	100
Stack Overflow	so	1000

詞典的格式為: 詞匯<Tab>編碼<Tab>詞頻,各個項目之間必須用 Tab(也就是制表符 )分割。一個最保險的方法就是,復制粘貼。詞頻部分可以不要。

然后在 luna_pinyin_simp.extended.dict.yamlimport_tables 中加上自己建立的詞匯。

import_tables:
  - luna_pinyin
  - luna_pinyin_simp.hanyu
  - luna_pinyin_simp.poetry
  - luna_pinyin_simp.cn_en
  - my

一切添加妥當之后,重新部署生效。

導入其他詞庫

將搜狗輸入法詞庫導入 RIME、將百度輸入法詞庫導入 RIME……一搜便知,無需贅述。

朙月拼音·簡化字默認英文

如果經常和英語打交道,偶爾輸入漢字,可以把朙月拼音初始狀態設為英語,需要時再切回中文。參考 這里 給出的說明,在 luna_pinyin_simp.custom.yaml 文件中加入下面的設置:

patch:
  "switches/@0/reset": 1  # 初始的 ascii mode 設置為「西文」

模糊拼音

這里是官方給的一個模板 (朙月拼音)。將模板剪貼進 ~/.config/ibus/rime/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ü/"

同步用戶資料

默認地,詞典快照備份到 ~/.config/ibus/rime/sync/UUID 這個地方。我們可以設定同步的目標文件夾,直接編輯 ~/.config/ibus/rime/installation.yaml

sync_dir: '/DATA/Backup/RimeSync'

然后,點擊輸入法程序指示器選擇「同步」。你的 用戶配置用戶詞庫 等都會被放在目標文件夾。

注意!可能有些你自己添加的文件不會被備份,注意下就行。

我們可以借助移動存儲設備,或在線存儲服務如百度網盤、堅果雲等,在多台電腦及不同系統之間同步用戶詞典和用戶設定。在新電腦上配置一下 installation.yaml 文件,執行 部署 -> 同步 -> 部署 ,你的 用戶配置用戶詞庫 都回來了。

新世紀五筆

參閱 https://github.com/GuoBinyong/wubixinshiji。Rime輸入法之五筆自動上屏


后續配置來自視頻 rime 中的小狼毫輸入法的安裝和基礎自定義 所分享的文件: https://www.lanzous.com/ia2g86h。


Easy english

用於輸入英文。拷貝下面兩個文件到「用戶資料夾」:

  • easy_en.schema.yaml
  • easy_en.dict.yaml

vim default.custom.yaml 添加輸入方案:

  schema_list:
    - schema: wubixinshiji    # 新世紀五筆
    - schema: wubixinshiji_pinyin    # 新世紀五筆·拼音
    - schema: luna_pinyin_simp    # 朙月拼音·簡化字
    - schema: easy_en
    - schema: pinyin_simp    # 袖珍簡化字拼音

輸入日期(不適用中州韻)

將文件 rime.lua 拷貝到 ~/.config/ibus/rime/ 下,在方案配置文件比如 wubi86.schema.yamlengine\translators: 下面添加濾鏡引用:

  translators:
    - lua_translator@date_translator
    - lua_translator@week_translator

更多中州韻輸入法(ibus-rime)配置,請閱讀晦澀的官方文檔:

See also


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM