macOS安装配置RIME-鼠须管输入法

macOS安装配置RIME-鼠须管输入法

RIME输入法简介

这个文档可以让你对RIME输入法引擎有一个全局的了解:Rime 輸入方案

什么是RIME输入法?

RIME一个开源(github)的可高度定制的输入法(框架),RIME是一个递归缩写:RIME Input Method Engine(计算机领域有很多递归缩写,比如GNU — GNU’s Not UNIX、PHP – PHP HyperText Preprocessor)。

之所以说它是一个输入法框架(或引擎),是因为它可以高度定制,你甚至可以用它创造自己的输入法(其实输入法的根本就是词库而已)

为什么要使用鼠须管输入法?

有两个原因:

  • 1、鼠须管是开源的软件,它是一个输入法引擎(而不仅仅是输入法),你可以用它安装或自己定制任何输入法(例如各种方言输入法),由于高度可定制,你甚至可以用它创造一个自己的输入法,不像一些公司出的输入法软件,没那么多的定制性;
  • 2、你在电脑上输入的所有字符都是由输入法输入的,为了避免可能存在的输入法偷偷上传数据,故不使用百度/搜狗之类的输入法。

跨平台

RIME在Win/Mac/Linux/Android/iOS都可以使用,不过三个平台的名字有点不一样,但配置都是相通的。

如下图所示,RIME在三平台的名字不一样,以下是RIME官方维护的版本,除此之外还有很多非官方维护版本,可以看这里
-w1021
虽然Linux版本叫中州韵,但整个RIME输入法也被称为“中州韵输入法引擎”,名称的由来是因为该软件作者“佛振”是河南人,而河南古时候叫中州,故名中州韵。

RIME输入法使用配置专用语言——yaml语言来写配置,非常方便,比json方便1万倍不止。

RIME的配置文件基本一样,除了平台相关的会有不一样,比如macOS有一个叫squirrel.yaml的配置文件,专门用于配置Mac上的Squirrel.app的一些皮肤及软件本身的配置,而在Windows上与squirrel.yaml具有相同作用的配置文件叫weasel.yaml,在Linux上这个文件叫什么我就不知道了,因为没有安装过,但基本上,这个配置其实就是平台软件名.yaml。其它配置都是通用的了,比如词库什么的。

安装鼠须管输入法

命令安装(推荐)

运行以下命令安装

brew install --cask squirrel

注意安装过程需要输入管理员密码,并且输入后你可能会发现没有反应,其实它是在配置东西,稍等一会儿就好了。

手动安装

下載及安裝页面,找到macOS,点击“下载”两字即可下载
-w815

无论是命令安装还是手动安装,一般安装后,点开右上角输入法图标即可看到多了一个Squirrel输入法,这个就是“鼠须管”输入法了,Squirrel是它的英文名(是松鼠的意思),如果没有出现,你需要“登出”(即logout)一下系统再进入,并不需要重启系统,当然你重启系统也行,因为重启系统,其实也是logout再login了。

鼠须管输入法就五个菜单
-w248
Deploy 部署,用于修改配置后让新配置生效
Sync user data 同步用户自定义数据到指定目录
Settings 打开配置文件所在文件夹(RIME输入法没有配置界面,都是直接修改配置文件)
Rime Wiki就是查看文档
Check for updates就是查看有没有更新

卸载Squirrel输入法

卸载其实就是删除程序文件以及配置文件

# 输入法程序目录
sudo rm -rf /Library/Input\ Methods/Squirrel.app
# 个人配置文件目录
sudo rm -rf ~/Library/Rime/

当然如果是brew安装的,也可以用brew来删除

brew uninstall --cask quirrel

添加86版五笔

鼠须管默认只有拼音,如果需要五笔,还得下载五笔词库。

下载管理工具及五笔词库

在终端进入到配置目录

cd ~/Library/Rime/

下载Rime的配置管理工具——plum(中文叫“东风破”)

git clone https://github.com/rime/plum.git

进入到刚刚下载的“东风破”(即plum)文件夹里

cd plum

运行rime-install工具,安装”wubi”(五笔词库)以及“pinyin-simp”(拼音反查五笔词库)

bash rime-install wubi pinyin-simp

当然,如果你不想那么麻烦,在进入到配置目录后,运行以下一句就可以完成前面三句的工作

curl -fsSL https://git.io/rime-install | bash -s -- wubi pinyin-simp

配置及启用86版五笔

前面下载86版五笔词库后,并不能直接使用,需要修改配置来启用它。在Rime的配置目录~/Library/Rime/里,新建一个文件default.custom.yaml,并在里面添加如下配置

# ~/Library/Rime/default.custom.yaml
patch:
  schema_list:
    # 五笔
    - schema: wubi86
    # 五笔拼音混输
    - schema: wubi_pinyin
    # 简入繁出(用五笔打简体,输出繁体字)
    - schema: wubi_trad

修改了配置后,要在顶部工具栏中点击Deploy(中文应该叫“部署”),注意只有你选中Squirrel的情况下再点击才会有这个菜单
-w251
注意: 后续的所有修改配置文件的地方,都需要在修改完后点这个“Deploy(部署)”按钮都会生效。

其中拼音反查是按z键后再输入拼音,如图:
-w179

要在单独五笔、五笔拼音混输、五笔简入繁出之间切换,可以用control+`切换(这个快捷键容易冲突,见这里)
-w565

修改配置原理

鼠须管自带默认配置在这个文件夹(即在Squirrel.app里)

cd /Library/Input\ Methods/Squirrel.app/Contents/SharedSupport/

而个人配置是不能写在app里面的,因为如果写在里面的话,一更新,配置就丢了。实际上前面已经说过,个人配置是在这个文件夹里

cd ~/Library/Rime/

事实上这个文件夹里也是有默认配置的,比如我们前面安装的五笔词库默认配置就在这个文件夹里。

对于文件名中没有schema字样的,我们只需要把默认配置文件加个custom即可,对于文件夹名有schema字样的,我们直接把schema替换成custom,如下表

默认 自定义
/Library/Input Methods/Squirrel.app/Contents/SharedSupport/squirrel.yaml ~/Library/Rime/squirrel.custom.yaml
/Library/Input Methods/Squirrel.app/Contents/SharedSupport/default.yaml ~/Library/Rime/default.custom.yaml
~/Library/Rime/wubi86.schema.yaml ~/Library/Rime/wubi86.custom.yaml

在自定义配置中,我们是以补丁(patch)的形式来覆盖默认配置的,所以写法会略有不同。比如在~/Library/Rime/wubi86.schema.yaml文件中有这一段配置

translator:
  dictionary: wubi86
  enable_charset_filter: true
  enable_sentence: true
  enable_encoder: true
  encode_commit_history: true
  max_phrase_length: 4
  disable_user_dict_for_patterns:
    - "^z.*$"

我们要在~/Library/Rime/wubi86.custom.yaml文件中覆盖它的配置,是这么写的

patch:
  translator/enable_user_dict: false # 关闭词频调整
  translator/enable_sentence: false # 关闭句子输入
  speller/max_code_length: 4 # 最长4码
  #speller/auto_select: true # 顶字上屏
  #speller/auto_select_unique_candidate: true # 无重码自动上屏

patch表示这是补丁(用于覆盖默认配置),比如translator/enable_sentence对应wubi86.schema.yaml文件中的enable_sentence配置项,但是写法就变成了用斜杠/来表示所属层级了。

各种定制

配置横向显示待选词

鼠须管默认是竖向显示的,但我相信有很多人不习惯这种竖向显示的方式(因为大多数输入法都是横向显示的)
-w291

~/Library/Rime/squirrel.custom.yaml中添加如下配置,其中起作用的是horizontal: true

patch:
    app_options:
        {}
    style:
        color_scheme: native
        # 横向显示
        horizontal: true
        inline_preedit: true
        corner_radius: 5

注意: 凡是custom的配置文件默认都是不存在的,需要自己新建。

保存配置后,点击Deploy(部署)即可生效
-w346

另外需要注意,有些皮肤配置本身已经配置了horizontal: true的,所以如果你像上边那样无论把horizontal设置为true还是false都不起作用时,你就应该去看看你使用的皮肤配置了。

定制皮肤颜色

/Library/Input Methods/Squirrel.app/Contents/SharedSupport/squirrel.yaml中搜索preset_color_schemes,就可以看到有很多默认的配色,我们可以在~/Library/Rime/squirrel.custom.yaml去设置自定义的配色。

比如我喜欢clean_white,我就把color_scheme的值设置为clean_white

patch:
    app_options:
        {}
    style:
        # 设置皮肤颜色
        color_scheme: clean_white
        horizontal: true
        inline_preedit: true
        corner_radius: 5

当然,如果所有默认配色你都不喜欢,那就自己添加一种,怎么添加呢?首先前面说了,默认颜色是在Squirrel.app中的squirrel.yaml文件里的,所以我们只需要在用户配置目录,即~/Library/Rime/目录中新建一个squirrel.custom.yaml(如果已经存在就不用新建了),然后在里面添加一种颜色配置就行了。

配置格式(前面配置原理已经说过,在覆盖原配置时,父子级要用斜杠来表示):

# 自定义主题颜色(tantsing是自定义的字符串,你写aaa、bbb也行,只要在引用的时候引用这个名字就行)
preset_color_schemes/tantsing:
    author: Bruce
    back_color: 0xE3E3E3
    border_color: 0x000000
    candidate_text_color: 0x000000
    comment_text_color: 0x474747
    hilited_back_color: 0x1A0791
    hilited_candidate_back_color: 0x6F0B73
    hilited_candidate_text_color: 0xE3E3E3
    hilited_text_color: 0xE3E3E3
    name: "丹青/Tantsing"
    text_color: 0x000000

至于配置里的颜色,如果没有工具那肯定也非常麻烦,好在有一个可视化工具RIME西米,可以用来自动生成颜色配置。

怎样使用自定义的这个颜色呢?其实是一样的,把前面color_scheme的值改为tantsing即可。

添加拼音

前面设置为五笔后,你会发现没法直接打拼音了(虽然按z键还是可以打拼音,但那毕竟没有直接打方便),所以我们需要配置一下拼音。

因为鼠须管输入法默认就有拼音词库,所以你可以直接使用它的拼音词库,因为是默认词库,所以词库文件是在Squirrel.app中的,具体路径是

cd /Library/Input\ Methods/Squirrel.app/Contents/SharedSupport/

如下图所示,有luna_pinyin开头的,并且带schema都是自带的明月拼音输入方案,而带dict的是词库文件,比如luna_pinyin.dict.yaml就是词库文件,这里是多个拼音方案使用同一个词库文件
-w614

启用方式:default.custom.yaml中添加一个schema(填上图中的xxxx.schema.yaml中的前面部分即可,即去掉.schema.yaml),我这里添加的是luna_pinyin_simp(明月拼音简体),然后点部署(Deplay)即可生效

# ~/Library/Rime/default.custom.yaml
patch:
  schema_list:
    # 86版五笔
    - schema: wubi86
    # 明月拼音(简体)
    - schema: luna_pinyin_simp

再啰嗦一次,文件名带custom的配置默认都是不存在的,也就是说default.custom.yaml文件如果你之前没有创建过,那么现在你就要创建这个文件。

切换两种schema(方案)的快捷键是control+`,按了之后会显示下图所示的界面,需要再选一次才能切换
-w373

当然,如果自带的词库你不喜欢,你也可能下载其它词库,就像添加五笔词库一样下载就行,只不过名称不同而已,而有什么词库可以下载,你可以网上找,比如以下是下载双拼词库

bash ~/Library/Rime/plum/rime-install double-pinyin

安装完成后,你会发现你的~/Library/Rime/目录下多了很多文件名为double_pinyin开头的文件,每一个文件都是一种拼音方案词库,其中double_pinyin_flypy.schema.yaml叫小鹤双拼,好像很多人喜欢这个(我个人不用拼音所以不太清楚哪个好用)。

添加自定义词组/删除不要的词组

由于我使用的是五笔,所以这里说的是五笔的,拼音的其实是一样的,只不过默认配置文件不同而已。

在以下几个文件中

# 纯五笔
~/Library/Rime/wubi86.schema.yaml
# 五笔拼音混输
~/Library/Rime/wubi_pinyin.schema.yaml
# 五笔简入繁出
~/Library/Rime/wubi_trad.schema.yaml

都有这样的配置

translator:
  dictionary: wubi86

该配置的意思是使用当前目录下的wubi86.dict.yaml这个文件作为五笔词库。

但是前面说过,我们可以覆盖默认配置。新建以下几个文件

# 纯五笔
~/Library/Rime/wubi86.custom.yaml
# 五笔拼音混输
~/Library/Rime/wubi_pinyin.custom.yaml
# 五笔简入繁出
~/Library/Rime/wubi_trad.custom.yaml

并分别在每个文件里面修改默认配置(但需要把translator/dictionary的层级关系用斜杠来表示)

# ~/Library/Rime/wubi86.custom.yaml
patch:
    translator/dictionary: bruce # 使用自定义词典bruce

像上面这样设置,就代表它会去加载bruce.dict.yaml文件作为五笔词库,但该文件并不存在,所以我们要新建一个。

我们新建一个bruce.dict.yaml,并填写以下内容

# bruce.dict.yaml

---
# name值用于被translator/dictionary识别
name: bruce
version: "2020.06.27"
sort: by_weight
use_preset_vocabulary: true
# 表示继承wubi86这个词库的所有内容
import_tables:
    - wubi86
...

# 自定义词组
测测  imim    1
斜杠  wtsa    1

可以看到,这里我写的name值是bruce,刚好对应文件名bruce.dict.yaml的第一部分,并且这个名字也是被translator/dictionary: bruce引用的。

另外要注意其中的import_tables,表示引入其它的词库,我这里引入的就是wubi86词库,因为我是只是想在它的基础增加自己的一些自定义的词,而不是想完全定义自己的词库。


另外要解释一下---...,这两个符号是yaml语言的标记,在一个yaml文件中,可同时包含多个文件,并用---分隔。选择性的符号...可以用来表示文件结尾。

上边的“测测”、“斜杠”都是自定义词组,它的结构是词组 编码 权重,当重码时,权重大的会出现在前面,但目前我们不需要这个,所以都写1就行(也可以用小数或百分数表示,有重码时,如果我想把某个词往后放,就用0.9,因为它比1小,所以就会排后面)。

特别注意: 词组、编码、权重之间的空格其实并不是空格,而是“一个制表符”,一般编辑器你按tab它会把制表符自动转换成空格,这将会导致你这个配置无效,所以一定要把空格换成制表符。

一般情况下,编辑器都是不显示制表符、空格等这些空的符号的,需要你自己设置成显示才能看见,比如我用的sublime text3,就需要点击PreferencesSettings
-w532

然后在弹出的窗口中右侧User部分添加一个"draw_white_space": "all"配置,注意由于是在json最后加的,所以要记得前面要加个逗号,否则就会报错(修改配置后貌似要重启一下sublime)
-w854

然后就能看见,一个空格是一个点,我们要做的是把空格替换为制表符即可,无论你输入了多少个空格,词组、编码、权重之间,只能间隔一个制表符(如下图)
-w712

特别注意,就算你复制制表符再粘贴,它也会变成空格(除非你设置了编辑器不把制表符替换为空格)。其实我自己平时修改都是直接用vim来修改,vim的yy->p复制,倒是不会把制表符自动替换成空格。

最后,你需要点击一下Squirrel输入法菜单里的“部署(deploy)”按钮才会生效(快捷键control+option+`,反引号就是数字1左边,Tab上边那个键),因为它要重新读取一下你修改后的配置并放到内存里。


删除不要的词组: 就我的86版五笔来说,在wubi86.dict.yaml里直接搜索你不要的那个词组,删除那一行,再部署(Deploy)一下就行了。

设置shift上屏

鼠须管输入法在默认情况下:

  • 中文状态输入英文后,按shift键是不能直接把输入的英文上屏的(按回车才可以)
  • 必须在没有输入的情况下按shift键,才能在中英文输入状态切换(在中文状态下已经输入英文但还未上屏时就无法切换)
  • 我在很多时候,都需要shift把当前英文上屏并直接切换到英文输入状态。

基于以上原因,我们需要把shift设置为在中文输入状态下输入了英文时,按shift能上屏并切换为英文。

default.custom.yaml文件中使用以下配置即可

# ~/Library/Rime/default.custom.yaml
patch:
    schema_list:
        - schema: wubi86
    # 设置按左shift键上屏并切换到英文输入状态
    ascii_composer/switch_key/Shift_L: commit_code
    # 设置按右shift键上屏并切换到英文输入状态
    ascii_composer/switch_key/Shift_R: commit_code

设置为双行显示

单行显示时,输入的字母不在输入法的框里(而是在编辑器上)
-w187

双行显示,输入的字母在输入法的框里
-w190

在配置文件夹下,找到squirrel.custom.yaml文件(如果文件不存在就要新建这个文件),并添加以下内容(实现单行双行显示的是inline_preedit选项)

# ~/Library/Rime/squirrel.custom.yaml
patch:
  app_options:
    {}
  style:
    color_scheme: clean_white
    horizontal: true
    # true为单行显示,false为双行显示
    inline_preedit: false
    corner_radius: 5

标点符号问题

默认情况下,输入顿号、左右书名号、左右方括号等符号的时候,它会要你选择,而不是直接输出,这对于很多人来说可能会很抓狂,比如对我来说就是,我需要的是直接输出而不是给这么多个给我选。
-w273
-w163
-w225

解决这个的方法,就是自己修改配置覆盖默认符号的配置。

用以下命令把Squirrel.app默认的punctuation.yaml文件复制一份到~/Library/Rime/目录中(当然文件名要加个custom)

cp /Library/Input\ Methods/Squirrel.app/Contents/SharedSupport/punctuation.yaml ~/Library/Rime/punctuation.custom.yaml

punctuation就是标点、标点符号的意思。

现在我们开始修改,它有full_shape(中文全角)、half_shape(中文半角)、ascii_style(英文输入),一般我们只要修改全角和半角里的一些配置就行。

以下是我修改的部分配置(我是用#号注释掉原来的,再在下面写上修改后的),用方括号括住的表示显示一组符号让你选,如果你不想选,就把中括号删掉,只剩下一个你想它直接输出的符号即可

half_shape:
  #'<' : [ 《, 〈, «, ‹ ]
  '<' : 《
  #'>' : [ 》, 〉, », › ]
  '>' :  》
  #'/' : [ 、, '/', /, ÷ ]
  '/' : 、

有时候修改配置并部署(Deploy)后,可能在有些编辑器里不生效(比如我用的sublime text3),这时候可以先试试切换一下到其它输入法再切换回来,有可能可以解决,如果不行,关掉那个编辑器再重启打开试试,实在不行就得登出系统再登录了(但一般不用)。

快捷键冲突问题

rime输入法内置很多方案,默认切换方案快捷键是control+`,但macOS下很多快捷键都是用这个快捷键,比如浏览器tab之间的切换,所以如果直接用默认快捷键,会遇到在其它软件内可以用该快捷键切输入方案,而在浏览器下死活切换不了的问题。

鼠须管设置快捷键的配置文件如下:

/Library/Input Methods/Squirrel.app/Contents/SharedSupport/default.yaml

# 如果要查看其内容,需要用双引号(因为Input Methods中间有个空格)
vim "/Library/Input Methods/Squirrel.app/Contents/SharedSupport/default.yaml"

如下图所示
image.jpg

如果需要修改,可以把这部分配置复制到以下配置文件中然后再修改,但不能随意修改,貌似它不支持随意配置快捷键,只能固定某些快捷键

~/Library/Rime/default.custom.yaml

grave就是反引号,就是Tab键上边那个键(按正规来说,应该叫“backstick”才对)。

备份同步用户配置

我们如果我们前面辛辛苦苦修改好的配置,一不小心弄丢了,那就该哭了,所以我们需要把自己修改的配置备份起来。

当我们点击鼠须管输入法菜单中的Sync user data菜单时,就会把用户自定义的数据备份到~/Library/Rime/sync/目录里
-w250

但是其实备份在那也不安全,实际上我们是可以配置让它备份指定目录的,在~/Library/Rime/目录下找到installation.yaml文件,在里面最后一行添加以下配置(如已存在则修改值就行)

sync_dir: "/Users/<你的用户名>/Library/Mobile Documents/com~apple~CloudDocs/RimeUserConfigSync"
  • 1、注意要把<你的用户名>替换为你的用户名,方法:在启动台搜索“终端”→打开“终端”→在终端输入whoami→按回车,即可显示你的用户名;
  • 2、RimeUserConfigSync是最后一级目录,它不能提前存在,否则鼠须管会认为你之前已经存在文件夹,而不会覆盖,也不会往里面写入文件。
  • 3、添加以上配置后,再点击右上角输入法图标→点击Sync user data菜单,鼠须管就会把你的自定义配置全部同步到你指定的文件夹中,如果你指定的文件夹位于iCloud或Dropbox的同步文件夹之下,则你的文件夹会被同步到云上,这样就可以同步到你另一台电脑中(Mac同步到Windows也是可以的)。

相关链接

深蓝词库转换
鼠须管输入法的五笔输入配置
鼠须管输入法 五笔定制
极点五笔词库
用 RIME 定制输入法
Schema.yaml 詳解

打赏

订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

macOS安装配置RIME-鼠须管输入法