往日微忆
文章目录

一直以来都在找各平台都可以适用的输入法。Debian 目前自带的 fcitx 五笔输入法的确是有点太难用了,Windows平台的五笔倒是挺多,几十年来,极点、极品、QQ等出的五笔都用过,最后还是懒得折腾,用起了微软五笔。个人用户词库各平台同步是一大问题。倒是喜欢手机的讯飞,可是没有五笔啊。一直以来,众多网友都强烈推荐 Rime,一直没试用。如今心血来潮,安装使用,发现不是一般的好用,各平台都可以用,个人词库同步基本不成问题,还可高定制,这就够了。趁着热情,我又学起了徐码,逐步取代日常使用的五笔吧!以下记录 Rime 安装使用配置全过程。

介绍说明

Rime 是开源、跨平台、可高定制性的输入法软件。

平台不同,称呼不同:

Rime 在不同的平台安装后,会存在两种资料夹:

  • 共享资料夹,也称程序文件夹,用于存放系统默认资料,建议不修改下面任何文件

    • 【中州韻】 /usr/share/rime-data/
    • 【小狼毫】 “安裝目錄\data”
    • 【鼠鬚管】 “/Library/Input Methods/Squirrel.app/Contents/SharedSupport/”
  • 用户资料夹,也称用户文件夹,用于存放个人配置及用户词典等资料,定制文件放于此处,注意备份

    • 【中州韻】 ~/.config/ibus/rime/ (0.9.1 以下版本爲 ~/.ibus/rime/)
    • 【小狼毫】 %APPDATA%\Rime
    • 【鼠鬚管】 ~/Library/Rime/

Rime 框架安装

Debian 平台

Rime 默认采用 iBus 框架(也支持 fcitx,但据说已经不更新),系统不能同时存在两种输入框架,所以得卸载之前使用的 fcitx: apt-get remove --purge fcitx*

再安装: aptitude install ibus-rime librime-data-wubi librime-data-pinyin-simp #此步后两个可以不安装,具体安装五笔时可以采用下述方法安装

执行上述安装步骤后,进行IBus Preferences-Input Method设置,点击Add按钮,选择Chinese-Rime,确定后即可使用。默认添加了朙月拼音、地球拼音、注音等输入方案,用 Ctrl+`(Tab按键的上方按键)即可调出,如无特殊要求,即可不定制直接使用。

Windows 平台

建议直接从https://rime.im/download/下载 Windows 平台安装文件,直接默认安装即可使用。安装过程中,可以更改用户文件夹位置。

更多输入方案安装

以下只以五笔86、繪文字 emoji、徐码为例,更多输入方案请参阅https://github.com/sgalal/awesome-rime等。

五笔86

Rime 五笔86 Github:https://github.com/rime/rime-wubi

东风破方式安装

东风破Github:https://github.com/rime/plum

首先安装东风破,官方安装说明如下:

you can specify a configuration among :preset, :extra and :all (note the colon):

curl -fsSL https://git.io/rime-install | bash -s -- :preset

This is equivalent to cloning this repo and running the local copy of rime-install:

git clone --depth 1 https://github.com/rime/plum.git
cd plum
bash rime-install :preset

**注意:**上述安装命令均以当前用户执行,不要用 root 用户执行,否则新的输入方案就被安装到 root 用户文件夹了,当前用户还是用不了新的输入方案。

更新东风破自身,执行: bash rime-install plum

安装五笔86版:在东风破目录执行 bash rime-install wubi pinyin-simp #五笔86依赖朙月拼音简体

手动方式安装

https://github.com/rime/rime-wubi 目录下wubi86.dict.yamlwubi86.schema.yamlwubi_pinyin.schema.yamlwubi_trad.schema.yaml4个文件拷贝至用户文件夹即可。

繪文字 emoji

Rime emoji Github:https://github.com/rime/rime-emoji

自動安裝

東風破安裝口令: bash rime-install emoji

在輸入方案中添加候選繪文字,以朙月拼音(luna_pinyin)爲例,代入配方參數:

bash rime-install emoji:customize:schema=luna_pinyin

自助安裝

https://github.com/rime/rime-emoji 目录下customize.recipe.yamlemoji_suggestion.yaml文件以及 opencc文件夹(包含其内的三个文件)拷贝至用户文件夹内。

并将emoji_suggestion.yaml內的內容加入至想添加Emoji的方案custom檔中,注意去掉其中的patch:字样和缩进,一个输入方案custom档中只允许有一个patch:

或者将如下内容添加进输入方案custom档中,不缩进顶格粘贴。

# 添加 emoji 表情
__patch:
# Rx: emoji:customize:schema=wubi_pinyin {
  - patch/+:
      __include: emoji_suggestion:/patch
# }

Rime 徐码输入方案

徐码输入法官方网站:https://www.xumax.top/ Rime 徐码输入方案:https://github.com/Ace-Who/rime-xuma

下载最新发布包,解压后将 schema 目录下的所有文件和文件夹都放到 rime 用户目录即可。

使用配置

安装上述新的输入方案后,发现不能用 Ctrl+`(Tab按键的上方按键)调出使用,尚需要手工配置。

配置有针对全局的配置,也有针对具体输入方案特殊的配置,所有这些配置文件均存于用户文件夹内,以*.custom.yaml命名。如下是我的个人使用配置,default.custom.yaml全局配置文件、 wubi_pinyin.custom.yaml五笔拼音个人配置文件、xuma_qshare.custom.yaml徐码QS个人配置文件。除此外,其他配置文件官方强烈建议不要更改,因为一更新,将全部被覆盖。

default.custom.yaml全局配置

# default.custom.yaml

patch:
  "switcher/hotkeys":  # 這個列表裏每項定義一個快捷鍵,使哪個都中
#    - "Control+s"      # 添加 Ctrl+s
    - "Control+grave"  # 你看寫法並不是 Ctrl+` 而是與 IBus 一致的表示法

  "switcher/caption": "〔输入方案选择〕" # 更改原“〔方案選單〕,我自己改了显示文字”

  schema_list:  # 對於列表類型,現在無有辦法指定如何添加、消除或單一修改某項,於是要在定製檔中將整個列表替換!名称须与各输入方案schema文件里相对应
    - schema: wubi_pinyin          #对应五笔拼音
    - schema: wubi86               #五笔86
    - schema: luna_pinyin_simp     #朙月拼音简体
    - schema: luna_pinyin          #朙月拼音
    - schema: xuma_qshare          #徐码QS
    - schema: xuma_qshare_type1    #徐码QS一型
    - schema: xuma_52p_qshare      #徐码五二顶

  "menu/page_size": 9       #候选词个数

  "key_binder/bindings":    
    # Emacs style
    - { when: composing, accept: Control+p, send: Up }
    - { when: composing, accept: Control+n, send: Down }
    - { when: composing, accept: Control+b, send: Left }
    - { when: composing, accept: Control+f, send: Right }
    - { when: composing, accept: Control+a, send: Home }
    - { when: composing, accept: Control+e, send: End }
    - { when: composing, accept: Control+d, send: Delete }
    - { when: composing, accept: Control+k, send: Shift+Delete }
    - { when: composing, accept: Control+h, send: BackSpace }
    - { when: composing, accept: Control+g, send: Escape }
    - { when: composing, accept: Control+bracketleft, send: Escape }
    - { when: composing, accept: Alt+v, send: Page_Up }
    - { when: composing, accept: Control+v, send: Page_Down }
    # move by word
    - { when: composing, accept: ISO_Left_Tab, send: Shift+Left }
    - { when: composing, accept: Shift+Tab, send: Shift+Left }
    - { when: composing, accept: Tab, send: Shift+Right }
    # flip page
    - { when: has_menu, accept: minus, send: Page_Up }
    - { when: has_menu, accept: equal, send: Page_Down }
    - { when: has_menu, accept: semicolon, send: 2 }     #分号上屏幕第二候选词
    - { when: has_menu, accept: apostrophe, send: 3 }    #单引号上屏幕第三候选词
    - { when: paging, accept: comma, send: Page_Up }    #逗号候选词上翻页
    - { when: has_menu, accept: period, send: Page_Down }    #句号候选词下翻页
    # hotkey switch
    - { when: always, accept: Control+Shift+1, select: .next }
    - { when: always, accept: Control+Shift+2, toggle: ascii_mode }
    - { when: always, accept: Control+Shift+3, toggle: full_shape }
    - { when: always, accept: Control+Shift+4, toggle: simplification }
    - { when: always, accept: Control+Shift+5, toggle: extended_charset }
    - { when: always, accept: Control+Shift+exclam, select: .next }
    - { when: always, accept: Control+Shift+at, toggle: ascii_mode }
    - { when: always, accept: Control+Shift+numbersign, toggle: full_shape }
    - { when: always, accept: Control+Shift+dollar, toggle: simplification }
    - { when: always, accept: Control+Shift+percent, toggle: extended_charset }
    - { when: always, accept: Shift+space, toggle: full_shape }
    - { when: always, accept: Control+period, toggle: ascii_punct }

wubi_pinyin.custom.yaml五笔拼音个人配置

patch:
  "switches/@0/reset": 1  #表示將 switcher 列表中的第一個元素(即 ascii_mode 開關)的初始值重設爲狀態1(即「英文」)。

  #启用特殊符号输入
  punctuator/import_preset: symbols
  recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'
#  punctuator/full_shape:
#    "/" : "、"
#  punctuator/half_shape:
#    "/" : "、"
  punctuator/symbols:       #自定义特殊符号
    "/gou" : ["√","✔"]
    "/cha" : ["✕","✖"] 

  # 开启自动造词相关设置
#  translator/enable_sentence: false                # 关闭句子输入
#  translator/enable_user_dict: true               # 是否开启用户词典(用户词典记录动态字词频,用户词)
#  translator/enable_encoder: true                 # 自动造词
#  translator/encode_commit_history: true          # 是否对已上屏的词自动造词

  speller/max_code_length: 4 # 最长4码
  speller/auto_select: true # 顶字上屏
  speller/auto_select_unique_candidate: true # 无重码自动上屏。
                    #顶字上屏与自动上屏的区别:
                    #顶字上屏,是当达到最大码,一般是4码时,无重码。再按第5码时,会将前四码的字顶上输入框中。 
                    #自动上屏,一般是无重码时,到到四码,自动将这唯一的一一个上屏。

  ### 使用自定义词典 custom_phrase_litad.txt,不推荐使用(后有说明),需在用户文件夹内新建custom_phrase_litad.txt,见后附内容格式
#  custom_phrase:
#    dictionary: ""
#    user_dict: custom_phrase_litad
#    db_class: stabledb
#    enable_completion: false
#    enable_sentence: false
#    initial_quality: 1
#  "engine/translators/@5": [email protected]_phrase

# 添加 emoji 表情
__patch:
# Rx: emoji:customize:schema=wubi_pinyin {
  - patch/+:
      __include: emoji_suggestion:/patch
# }

附自定义词典 custom_phrase_litad.txt 文件内容:

# Rime table
# coding: utf-8
#@/db_name  custom_phrase.txt
#@/db_type	tabledb
#
# 用於【朙月拼音】系列輸入方案
# 【小狼毫】0.9.21 以上
#
# 請將該文件以UTF-8編碼保存爲
# Rime用戶文件夾/custom_phrase.txt
#
# 碼表各字段以製表符(Tab)分隔
# 順序爲:文字、編碼、權重(決定重碼的次序、可選)
#
# 雖然文本碼表編輯較爲方便,但不適合導入大量條目
#
# no comment

中州韻輸入法引擎	rime	2
又双叒叕	yyy
http://rime.im/	rime	1
Rime	rime	3

上述词典,输入 rime 会出现3个候选词。

xuma_qshare.custom.yaml徐码QS个人配置

patch:
  "switches/@1/reset": 1  #表示將 switcher 列表中的第二個元素(即 ascii_mode 開關)的初始值重設爲狀態1(即「英文」)。注意与上面五笔拼音对比,此处为 @1 ,而非五笔拼音里的 @0,是0还是1得要具体看对应的 schema 文件里是第一项还是第二项

  #启用特殊符号输入
  punctuator/import_preset: symbols
  recognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'
#  punctuator/full_shape:
#    "/" : "、"
#  punctuator/half_shape:
#    "/" : "、"
  punctuator/symbols:
    "/gou" : ["√","✔"]
    "/cha" : ["✕","✖"] 

  key_binder:
    import_preset: default   # schema 文件里对快捷键进行了更改,此处进行修改,载入默认,方便使用 default.custom.yaml 里的定义。

  translator/encode_commit_history: true         # 是否对已上屏的词自动造词
  fixed/enable_user_dict: true         # 是否开启用户词典(用户词典记录动态字词频,用户词),对 schema 文件里相应的定义进行更改

# 添加 emoji 表情
__patch:
# Rx: emoji:customize:schema=wubi_pinyin {
  - patch/+:
      __include: emoji_suggestion:/patch
# }
  

重新部署

上述更改相关配置后,得重新部署才能生效。

重新部署的操作方法:

  • 【中州韻】點擊輸入法狀態欄上的 ⟲ (Deploy) 按鈕 或:如果找不到狀態欄,在終端輸入touch ~/.config/ibus/rime/; ibus restart觸發自動部署。或者也可以重启 IBus:ibus-daemon -drx
  • 【小狼毫】開始菜單→小狼毫輸入法→重新佈署;當開啓托盤圖標時,右鍵點選「重新佈署」
  • 【鼠鬚管】在系統語言文字選單中選擇「重新佈署」

备份与同步

上述配置后,在使用过程中,根据输入频率、上屏字词等会自动生成用户词典(见*.userdb文件夹),但此时如果想浏览修改自定义用户字词不太方便,得要同步后,在同步目录生成的*.userdb.txt文件才能直观浏览、修改和增加。徐码虽然也有自设定的用户词典文件xuma.extended.dict.yaml,但不能双向合并同步,比较不便,不建议使用。

Rime 提供的同步功能暂不能自动设定云同步,只能本地同步,需要自己采用坚果云、Syncthing等进行云同步。在用户文件夹下installation.yaml文件用来设定同步。

Debian 平台下installation.yaml文件内容大致如下:

distribution_code_name: "ibus-rime"
distribution_name: Rime
distribution_version: 1.4.0
install_time: "Mon Jan 18 16:38:36 2021"
installation_id: "liPc1"
rime_version: 1.4.0
sync_dir: "/home/litad/ltdZiao/1syncData/00_DataBaKUP/01configBKUP/RimeConfig/0SyncDir0"

Windows10 平台下installation.yaml文件内容大致如下:

distribution_code_name: Weasel
distribution_name: "小狼毫"
distribution_version: 0.14.3
install_time: "Thu Jan 21 16:53:55 2021"
installation_id: "liPc2"
rime_version: 1.5.3
sync_dir: 'E:\ltdZiao\1syncData\00_DataBaKUP\01configBKUP\RimeConfig\0SyncDir0'  

上述 installation_id 、sync_dir 值自定。设置好后,使用 Rime 的同步功能,将自动将相关个人配置以及用户词典内容备份到 sync_dir 设定的目录里。设定云同步软件时,只同步 sync_dir 目录即可。

注意:每次同步,对于输入方案个人配置的内容,将自动以用户文件夹的相应文件覆盖备份目录里相应的内容;对于生成的个人用户词典,将实行双向同步,一方面合并备份目录其他主机或平台(如有)生成的个人用户词典内容,另一方面合并本机现下生成的个人用户字词。一句话,个人配置文件各平台不自动同步,是单向的,不合并,用户词典是双向的,合并内容。所以,更改输入方案配置文件请更改用户文件夹下的相应文件,修改增加个人用户字词短语,可以修改备份目录sync_dir下的*.userdb.txt文件。

如我用五笔拼音输入方案生成的个人用户词典文件wubi86.userdb.txt内容如下:

# Rime user dictionary
#@/db_name	wubi86.userdb
#@/db_type	userdb
#@/rime_version	1.4.0
#@/tick	393
#@/user_id	litad-inVmDeb
amyy 	英文	c=1 d=0.494109 t=393
appl 	劳军	c=3 d=2.34814 t=393
awx 	花	c=4 d=3.69824 t=393
awxa 	花红	c=1 d=0.980199 t=393

前面是编码(可以是任何自定义的编码),中间是Tab制表符,再是组的字词,再后面的可以不管。这里就可以根据需要删除、增加、更改。

问题与解决

目前发现的有:

有关声明

以上内容大部分从网上摘取修改,如有繁体字的,大多从Rime 官网摘录,其他途中很多忘了记录出处,如有侵犯,敬请提醒告知。