目录

  • RIME(小狼毫)踩坑实录
    • 适合谁使用
    • 配置文件规则
      • 文件目录
      • 命名格式
      • yaml语法
    • 踩坑
      • 配置微软双拼
      • 增加词典
        • GUI方式(不推荐)
        • 编写yaml文件方式
      • 符号上屏
    • 总结

RIME(小狼毫)踩坑实录

听说RIME是一个很牛的开源输入法,相比与常用的搜狗,微软拼音,qq拼音等等,不联网,可以高度定制,没有广告,既能保护隐私,有能快速输入,正好win升级之后自带的微软输入法经常出问题,因此我决定尝试一下,到目前用了一个多月,断断续续的遇到不少问题,由于软件其实就是为了中文输入,因此网上英文资料几乎没有,中文资料全都是教给你如何安装,至于出的问题怎么解决几乎没有人提。于是我决定总结下遇到的问题。
先放个官网链接:RIME官网

适合谁使用

RIME 是全平台通用的但是在不同平台上名字不同,windows叫小狼毫,linux叫中州韵,mac上叫鼠须管,android上好像叫同文,总之都是基于rime。

  1. 不怕折腾 ,相比与微软,搜狗这些,小狼毫配置复杂且容易出错;
  2. 不怕挫折,由于词库不联网,如果没有备份有时候词库会损坏,如果没有备份,那就是个悲剧了;
  3. 对隐私比较重视,虽然搜狗和微软应该不会收集个人隐私,但是毕竟会把输入习惯上传,如果对隐私比较重视,用小狼毫,完全在本地,最大程度保护隐私;
  4. 学习能力强,小狼毫的配置主要涉及yaml的语法,还有它的配置文件规则,比较复杂,但是如果能学会,那么基本上以后配置起来就得心应手不会出错;

虽然很多人吹,但我不得不说,配置学习成本太高了,我自己摸索着配置了一个月才算基本明白。而且虽然教程多,但是出了问题很难找到解决的办法。当然上边的条件也不用都满足,没准你遇不到问题呢,或者学习的很快。总之,感兴趣就可以试试。

优点:

  • 隐私保护
  • 高度可定制
  • 打字快捷
  • 没有广告
  • 可扩充词库(这个也不算优点,其他的也可以扩充词库)
  • 可以输入中古汉字,注音字,繁体字,粤语等多种文字

缺点:

  • 手动导入词库,像搜狗之类的可以自动联系某些网络热门词汇,热门梗,rime只能手动导入
  • 同步麻烦,虽然可以设置同步文件夹,但是它的自动同步需要网盘支持,而且容易出问题(比如我就出过很多问题,甚至还毁了一次词库)

配置文件规则

有些教程只是教给更改那些文件,但没有说放在哪个目录,emmmm结果坑了我一波,了解rime文件目录已经命名规则,可以更好的读懂教程,以及修改自己的配置,实际上非常简单。

文件目录

rime主要有两个目录分别是用户文件夹和程序文件夹,在rime输入法的这个字上右键可以找到,用户文件夹程序文件夹

  • 其中程序文件夹中有个data文件夹,里面存放了程序自带的一些输入法,词典等等(其实所有的参数和配置几乎都在里面)。网上下载的输入法的schema可以放里面(后来发现放到用户文件夹也可以,并且最好放到用户文件夹,不然升级版本或者重装之后可能会消失)。
  • 用户文件夹有一个bulid文件,里面是程序运行之后生成的二进制文件,配置文件等等,是程序运行的时候直接使用的文件。build里面的 文件尽量不要更改,因为每次程序重新启动都会重新生成build里面的一些文件。
  • 用户文件夹下还会有user.yaml installation.yaml weasel.custom.yaml 等文件(weasel.custom.yaml没有的话,在图片中的右键菜单中点击输入法设定,选择完输入法和皮肤之后就会生成了)这三个文件分别存放一些信息,下面用到了会提到
  • 用户文件夹下还可能有个xxx.userdb的文件夹,存放的是用户词典,不要改动,最好经常备份

命名格式

rime的配置文件都是yaml格式文件,都以.yaml结尾,同时前边的表示文件类型比如,.schema.yaml.custom.yaml.custom.dict.yaml等等。
其中不同的名称表示不同的类型:

  • dict表示词典
  • schema表示输入方案,比如全拼,双拼,五笔等等,我比较喜欢微软双拼,网上可以下载到相应的schema
  • custom用户配置的文件,对相应的yaml做一定的定制,比如default.custom.yaml就是对default.yaml所做的更改
    其他规则可参考:方案设计

yaml语法

很多教程都是不讲yaml语法直接教给你应该怎么配,但是yaml对语法格式要求很严格,所以了解基本语法和规则挺有必要的,这样出了问题可以确定不是敲错了。

yaml基本语法:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释

对于rime还有:

  • 文件编码必须是UTF-8,可以使用notepad3或者editplus甚至visual studio code查看和修改编码。(不要用notepad++)
  • 在rime中一般使用两个空格缩进

rime使用对象和数组的语法:
对象:key: value 注意冒号后面要加空格
用缩进表示层级

key: child-key: valuechild-key2: value2

数组:-表示数组

- A
- B
- C
多维数组:
-- A- B- C

完整yaml语法可以参考:yaml语法

rime中,custom文件中,需要有个patch关键字,表示对同名的非custom文件的修改(或补充),有且只能有一个patch。格式如下,注意冒号后面一定要有空格

patch: key: value

对于rime可以使用两种格式的层级结构:

patch:"style/color_scheme": google # 这个引号似乎加不加都可以
等同于:
patch: style: color_scheme: google

踩坑

配置微软双拼

首先想使用微软双拼,必须在网上下载相应文件,网上有一个rime_pro的文件包rime_pro(该链接来源于少数派)。
然后将double_pinyin_mspy.schema.yaml保存到data文件夹(我当时把所有的rime_pro中保存到这个文件夹了,但是实际上保存到用户文件夹应该也是可以的)。
然后对用户文件夹中文件进行配置:
user.yaml,这个文件夹内容都可以通过GUI界面配置,也就是说一般情况下不用动就可以。
按ctrl+` ,打开选择界面,按数字选择进行相应配置。

var:last_build_time: 1639709769 option:simplification: true # 变成简体字previously_selected_schema: double_pinyin_mspyschema_access_time:double_pinyin_mspy: 1634631387luna_pinyin_simp: 1633846595

weasel.custom.yaml,配置皮肤等等,比较关键的一个是设置横向选词

customization:distribution_code_name: Weaseldistribution_version: 0.14.3generator: "Weasel::UIStyleSettings"modified_time: "Mon Oct 11 13:06:31 2021"rime_version: 1.5.3
patch:"style/color_scheme": google"style/horizontal": true # 设置横向选词"style/font_face": "微软雅黑"  # 字體名稱,從記事本等處的系統字體對話框裏能看到"style/font_point": 14     # 字號,只認數字的,不認「五號」、「小五」這樣的

default.custom.yaml,配置一些全局的默认设置,关于上屏可以看这个文章,这个文件也会在GUI中修改之后自动刷新。

customization:distribution_code_name: Weaseldistribution_version: 0.14.3generator: "Rime::SwitcherSettings"modified_time: "Sun Oct 10 14:25:19 2021"rime_version: 1.5.3
patch:ascii_composer/switch_key:Caps_Lock: commit_code # 上屏,表示按下对应按键之后直接上到屏幕上Shift_L: commit_codeShift_R: commit_codeControl_L: noopControl_R: noopmenu:page_size: 9 # 候选词数目schema_list:- {schema: double_pinyin_mspy} 把其他的注释掉了,相当于只用这一个方案并让它排第一# - {schema: luna_pinyin_simp}# - {schema: luna_pinyin_fluency}# - {schema: bopomofo}# - {schema: bopomofo_tw}# - {schema: cangjie5} # - {schema: stroke}# - {schema: terra_pinyin}

这里的坑主要是我把data文件中的某些文件替换掉了可能,所以有些别人需要设置的地方我无法设置,别人不用设置的地方我需要设置。所以记住所有自己的文件全部放到用户文件夹下最好,两个目录中的文件应该是同样能起作用的(猜测)。

增加词典

虽然有明月(luna)拼音这样的词典,但是对于某些朋友可能还是不太够,毕竟它是没有联网更新词库的功能加上某些人会用到一些专业的词库(比如化学各种化合物名称)。所以可以导入词库。

首先需要准备好rime格式的词库,也就是把其他词库转化为rime能用的词库。可以用深蓝词库转换器
选择下载好的文件的路径,选择文件的类型(来源,一般搜狗比较多,搜狗有公开的词库,非常好用),目标的话如图选Rime中州韵,编码无论是全拼还是双拼都选拼音,点转换,完成后保存成txt文件即可。

此时有两种导入方式:

GUI方式(不推荐)

右键图片里面的字,也就是设置里面,打开用户词典管理,可以看到里面有luna_pinyin还有easy_en。一般都选用luna_pinyin,词库正好够用。

注意,无论是全拼还是双拼在rime里面都用同一种词库,也就是说词库是通用的,但是五笔与他们词库不通用,luna里面有自带的五笔输入法的词库。


  • 导出词典快照,会导出一个当前词典的备份
  • 合入词典快照,会把你导出的或者制作好的词典合并到当前选择的词典中
  • 导出文本码表,会导出一个txt文件,方便进行格式转换,也可以用来转移词典等等
  • 导入文本码表,可以把txt文件等词典文件导入到词典里面会形成一个新的词典

这里建议先备份再进行操作,可以通过输出词典快照或者导出文本码表备份,不过最靠谱的方式还是到用户文件夹下把相应的.userdb备份一下,以免备份过程中出错(在词典比较大的时候,导出要花很长时间,如果有可能卡死导致备份失败甚至词典不能用的情况)。
另外如果用户文件夹下没有.userdb说明还没有记录到用户的输入习惯,这种情况下随便改就可以了。重点是如果用了一个月以上,想要做任何更改一定提前备份。我有一份坏了,尝试恢复了好久都没有成功。其中userdb中文件如下(出现了一个lost文件夹):

log中显示:

据说使用GUI导入的方式,有可能导致输入法卡,所以不推荐这种方式。我就是用的另一种导入方式。

编写yaml文件方式

以下是我rime用户文件夹下所有的文件,其中后面.d .old都是中间出了问题但是没有删除的文件。出了这种以外:

  • build:程序自动生成的文件,里面的内容只可以在出问题时检查,不要改动,不然随时可能被覆盖。但是在程序运行中,实际运行的就是build中的内容,程序会把用户配置的输入法以及引用的文件中的所有文件都合并到同一个文件中
  • userdb:用户输入的词典,以及根据输入习惯生成的词典,程序自带的词典不在这里
  • .dict.yaml:词典文件,我这里把词典进行了一些划分方便随时更改词库,比如chemical.sougou中就是从搜狗下载的化学相关的词库。
  • double_pinyin_mspy.custom.yaml:输入法配置文件的用户配置,这个是微软双拼的,通过patch关键字做一些定义和更改,词库也在这个里面导入
  • 其他的看上面


下面是文件的内部:
custom.dict.yaml:作为一个中间文件,用来导入各个词典,注意这里一定要导入luna_pinyin,这是基础的单字和基础词的词典除非有其他的单字的词典否则必须导入,不然能打出来词打不出来单个字

---
name: custom
version: "2019.01.13"
sort: by_weight
use_preset_vocabulary: true
import_tables:- luna_pinyin- double_pinyin_mspy.sougou- chemical.sougou
...

chemical.sougou.dict.yaml:词典的格式,前面用词库转换软件,把这个文件头复制进去,或者把转换的词复制进来都可以,保证文件格式是’utf-8’就行。这也是词典文件的一般格式。下面的double_pinyin_mspy.sougou.dict.yaml与这个基本一致

---
name: double_pinyin_mspy.sougou
version: "209.0.3"
sort: by_weight
use_preset_vocabulary: true...阿苯哒唑  a ben da zuo
阿比松脂    a bi song zhi

double_pinyin_mspy.custom.yaml

patch:#  符号快速输入和部分符号的快速上屏punctuator:import_preset: symbolshalf_shape:"#": "#""`": "`""~": "~""@": "@""=": "=""/": ["/", "÷"]'\': "、""'": {pair: ["「", "」"]}"[": "["# commit 不行不知道为啥"]": "]""$": "$""<": "《"">": "》""*": "*"translator:dictionary: custom # 在这里导入上面的custom,后面的.dict.yaml不写

这里一定要注意yaml语法,一个是冒号后面要有空格,一个是下一级前面是两个空格而不是python那种四个空格
还有另外的一种写法比如:translator\dictionary: custom 或者 “translator\dictionary”: custom,但是我感觉我这种写法看上去好看,也比较好修改,反正如果不懂就去查yaml语法

然后右键重新部署就可以了,如果词典文件特别大(比如我的有80 MB)就要等好久,我印象中我等了差不多10分钟,期间千万不要强制退出,我曾认为是卡了,强制退出之后,生成一半的词典就会出错,输入法就会出奇怪的错误。这种情况下最好的方法就是删除.userdb文件夹,重新生成。
如果等了好久还是不行,大概率是真的卡死了,可以先少放点词,比如100个然后导入试一下,如果能直接输入这100个词中的短语,就说明导入成功了。在某些导入不成功的情况下,输入法可以用,但是词打不出来。

符号上屏

如果用默认配置,在中文输入下,符号不会直接上屏,而是如下图:

出现几个选项让你选,虽然设计也不错,但是中文环境下基本不会输入英文的句号逗号什么的,所以期望直接上屏。可以在double_pinyin_mspy.custom.yaml中配置
其中有半角和全角的区别,我输入一般用半角,所以我只设置了半角。全角设置方法相同(full_shape)。有些教程使用commit:,但是我这里尝试并不行
另外在defalut.custom.yaml配置了switch_key,原理差不多,作用是,在中文输入法下输入了一个单词,按shift切换英文的时候会直接上屏,与其他输入法输入习惯相匹配。在defalut.custom.yaml中这配置也是可以的,就是把punctuator部分复制过去就行(理论可行,我没试过)。这样就会全局生效。

patch:#  符号快速输入和部分符号的快速上屏
punctuator:import_preset: symbolshalf_shape: # 半角符号"#": "#""`": "`""~": "~""@": "@""=": "=""/": ["/", "÷"]'\': "、""'": {pair: ["「", "」"]}"[": "["# commit 不行不知道为啥"]": "]""$": "$""<": "《"">": "》""*": "*"
translator:dictionary: custom # 在这里导入上面的custom,后面的.dict.yaml不写

在程序文件夹下的data文件夹中有symbols.yaml文件,

# Rime's punctuation and symbols
# encoding: utf-8
#
# Usage: patch your Rime schema to enable /X symbolsconfig_version: '1.3'patch:punctuator/import_preset: symbolsrecognizer/patterns/punct: '^/([0-9]0?|[A-Za-z]+)$'punctuator:full_shape:...symbols:
#符號、電腦'/fh': [ ©, ®, ℗, ℠, ™, ℡, ℻, ☇, ☈, ☉, ☊, ☋, ☌, ☍, ☎, ☏, ☐, ☑, ☒, ☓, ☕, ☖, ☗, ⛉, ⛊, ☘, ☙, ☚, ☛, ☜, ☝, ☞, ☟, ☠, ☡, ☢, ☣, ☤, ☥, ☦, ☧, ☨, ☩, ☪, ☫, ☬, ☭, ☮, ☯, ☸, ♨, ♰, ♱, ♲, ♳, ♴, ♵, ♶, ♷, ♸, ♹, ♺, ♻, ♼, ♽, ♾, ♿, ⚆, ⚇, ⚈, ⚉, ⚐, ⚑, ⚒, ⚓, ⚔, ⚕, ⚖, ⚗, ⚘, ⚙, ⚚, ⚛, ⚜, ⚝, ⚞, ⚟, ⚠, ⚡, ⚰, ⚱, ⚲, ⚳, ⚴, ⚵, ⚶, ⚷, ⚸, ⚹, ⚺, ⚻, ⚼, ⚽, ⚾, ⚿, ⛀, ⛁, ⛂, ⛃, ⛋, ⛌, ⛍, ⛎, ⛏, ⛐, ⛑, ⛒, ⛓, ⛔, ⛕, ⛖, ⛗, ⛘, ⛙, ⛚, ⛛, ⛜, ⛝, ⛞, ⛟, ⛠, ⛡, ⛢, ⛣, ⛨, ⛩, ⛪, ⛫, ⛬, ⛭, ⛮, ⛯, ⛰, ⛱, ⛲, ⛳, ⛴, ⛵, ⛶, ⛷, ⛸, ⛹, ⛺, ⛻, ⛼, ⛽, ⛾, ⛿ ]'/xl': [ α, β, γ, δ, ε, ζ, η, θ, ι, κ, λ, μ, ν, ξ, ο, π, ρ, σ, ς, τ, υ, φ, χ, ψ, ω ]'/xld': [ Α, Β, Γ, Δ, Ε, Ζ, Η, Θ, Ι, Κ, Λ, Μ, Ν, Ξ, Ο, Π, Ρ, Σ, Τ, Υ, Φ, Χ, Ψ, Ω ]

这个就是double_pinyin_mspy.custom.yaml中的import_preset: symbols导入的符号,其中如果输入/xl,就会弹出希腊字母,这是为了快速输入特殊符号的,xl就是希腊的拼音缩写,还有jq是节气等等,都是先输入/再输入拼音缩写唤出来,相比与其他输入法感觉挺好的。

总结

以上就是我配置rime中出现的各种问题,还有我正在用的配置文件等等,有需要的朋友可以参考下。
RIME是一个非常优秀的输入法,个人觉得似乎比微软的输入法还有快一些,不知道是不是错觉。其高度可定制向一把双刃剑,虽然极大丰富了输入法设置灵活度,但是也导致了上手困难,配置复杂。输入法是我们每天用的最多的软件,使用RIME可以让输入法最大程度上变成我们想要的样子,提高生产力。比如这个输入法可以方便的在多种语言间切换,可以方便的输入繁体字,甚至也可以设置其他输入法中广受欢迎的U模式。
但是对于新手来说,我建议一开始不要想着尽善尽美,先能用,用起来,再慢慢让它变得好用,添加词库,修改输入方案,添加特殊字符,设置快捷短语,配置主题等等各种精细打磨。在其他输入法养成的习惯肯定是要有所更改的,开始用的时候可以两个输入法都用,以后习惯里也是要另一个输入法作为补充的,有时候RIME会在某些地方无法输入而卡住。虽然出现的不多,但还是要切换到微软来输入一下。
最后就是,记得经常备份词库。

RIME(小狼毫)踩坑实录(常见问题)相关推荐

  1. 钉钉小程序父组件调用子组件方法(钉钉小程序踩坑实录)

    钉钉小程序父组件调用子组件方法 页面到底部,父组件触发,调用子组件的方法,加载子组件的数据 解决方法 子组件里: didMount() {this.$page.childComponent = thi ...

  2. PAT乙级题库踩坑实录

    PAT乙级题库踩坑实录 [截止2021.7.28乙级题库已经全部AC] 题目名称: 1030 完美数列 (25 分) 测试点3踩坑 每次取m后,不用从m后第一个元素开始判断是否大于mp,直接从m后第m ...

  3. iOS 入门开发踩坑实录

    其实人生也没有什么道理可讲,但是我们不必丧气,还是要期待,人生有奇遇. 前言 苹果开发者:iOS Developer 最近因为工作需要要开始搞iOS了,简单记录下我收集和学习的过程. 学习资料准备 组 ...

  4. android小程序_小程序踩坑记

    小程序踩坑记 希望这个文章能尽量记录下小程序的那些坑,避免开发者们浪费自己的生命来定位到底是自己代码导致的还是啥神秘的字节跳变原因. 前记 小程序大多数坑是同一套代码在不同平台上表现不一致导致的,微信 ...

  5. JAVA发布栅格图层_基于 WebGL实现自定义栅格图层踩坑实录

    以下内容转载自totoro的文章<WebGL-Y轴翻转踩坑实录> 作者:totoro 链接:blog.totoroxiao.com/webgl-flipY- 来源:blog.totorox ...

  6. tabbar角标 小程序_【沃行课堂】恭喜你遇到“坑”,小程序踩坑指南

    上周我们的开发小哥哥带领我们一起领略了开发中遇到的各种问题,以及基于SaaS模式的平台技术架构及实现.本周我们换个方向,由高级开发工程师秋哥带领大家共同探讨下小程序开发中踩过的坑.秋哥会从公司的几个小 ...

  7. 微信小程序踩坑记——ColorUI组件的使用

    微信小程序踩坑记--组件的使用 组件类型 ColorUI Vant weapp ColorUI 首先贴上官网链接:官网链接,GitHub链接 简介 ColorUI是一个css库!!!在你引入样式后可以 ...

  8. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)

    Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...

  9. 微信小程序踩坑—用户登录界面

    最近做的一个项目有涉及到用户登录.微信小程序的用户登录在我看来有两种,一种是需要用微信提供的用户身份标识,简单地说就是小程序的登录者就是使用这个小程序的微信用户,还有一种是小程序和服务器之间有自己的一 ...

最新文章

  1. 前沿速递:因果涌现在多种因果衡量标准下普遍存在
  2. 雅虎公司C#笔试题,看看你能解答多少? [含答案]
  3. Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹
  4. mysql could not create connection_mysql8.0 Could not create connection to database server.解决办法...
  5. iOS上获取iTunes音乐权限
  6. return 和 方法的递归调用
  7. Java设计模式之行为型:备忘录模式
  8. 答应我,别再if/else走天下了可以吗
  9. JavaScript实现复选框全选与全不选的效果
  10. 【计算机网络复习 数据链路层】3.5.1 信道划分介质访问控制
  11. java 实现协方差_无监督数据降维技术-主成分分析(PCA)的Python实现
  12. es6中的promise解读
  13. firefox访问页面 直接显示代码问题问题解决办法
  14. MongoDB之Robo3T客户端安装
  15. 【Photoshop】滤镜详解
  16. 能够识别图片文字的软件有吗
  17. linux查看日志相关命令
  18. Node.js 读取图片
  19. python删除第一行_python学习之删除DataFrame某一行/列内容
  20. jsp 的ne 什么意思

热门文章

  1. java 基础面试题
  2. 整理常见标点的中英文对照
  3. 【Mybatis+spring整合源码探秘】--- mybatis整合spring事务原理
  4. 五年级上册ppt计算机教案,小学五年级信息技术上册教案-
  5. 多个视频怎么合成一个视频?教你几种视频合并方法
  6. 美颜相机毕设项目零基础教学
  7. python的turtle库画笔和填充颜色的控制方式
  8. iphone手机热点卡顿多次断连解决办法
  9. 在线弹幕xml文件转ass 附:在线转换其他文件格式的网站
  10. 线程池的5种使用方式