zoukankan      html  css  js  c++  java
  • 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 ranslators: 下面添加滤镜引用:

      translators:
        - lua_translator@date_translator
        - lua_translator@week_translator
    

    更多中州韵输入法(ibus-rime)配置,请阅读晦涩的官方文档:

    See also


    寻找知识的源头,探索宇宙的奥秘。
    知识的存放地址:人的大脑里、书里、互联网上、自然界里。
    获取知识的最优路径:精品课程 > 精品书籍 > 官方文档 > 优质文章 > 与人交流(互为补充,构建知识体系)。
    内外兼修,形神合一。

  • 相关阅读:
    英文、简繁体中文 IT 词汇对照表
    VB.NET 中的 As New 以及型別指定
    使用 ADO.NET 的 ExecuteScalar 方法返回单一值
    适时调整 SqlDataSource 控件的 DataSourceMode 属性
    ADO.NET 2.0 的并行控制与数据存取冲突侦测
    让 ADO.NET 2.0 的 SqlCommand 和 SqlDataAdapter 合作
    透过 Socket API 让 PDA 和远程 PC 联机
    探讨 .NET 语言的 using statement 与资源释放
    让 user control 中的 Button 也能启用验证
    dotNET 語言中可提升效能的邏輯運算子
  • 原文地址:https://www.cnblogs.com/keatonlao/p/12983158.html
Copyright © 2011-2022 走看看