205. rime系软件的使用

目录

  • 配置目录/用户文件夹:
    • 鼠须管: ~/Library/Rime
    • 小狼毫: %APPDATA%\Rime
  • 共享目录/程序文件夹:
    • 鼠须管: /Library/Input Methods/Squirrel.app/Contents/SharedSupport
    • 小狼毫: <安装目录>\data

自己的配置放到配置目录里就可以。共享目录提供了一些自带的方案及各项默认配置,可以直接引用;无特殊需求,不要修改共享目录的文件。

比如 opencc 简繁转换的配置可以直接书写 s2t.json,因为共享目录里已经有相关文件了。

build/ 目录是部署后自动生成的,不要修改,出错时可以看看里面生成的是否正确。首次部署较慢,主要是拼音方案词库很大,如果下次部署前没有修改词库,就会很快完成部署。

以patch的方式打补丁

使用说明

文件名为 xxx.custom.yaml,内容以 patch: 开头的,是补丁文件,注意缩进,可以对原配置进行覆盖和追加。

  • 方案 xxx.schema.yaml 的补丁文件是 xxx.custom.yaml
  • default.yaml squirrel.yaml 就是把结尾的 .yaml 改成 .custom.yaml

具体语法参考官方 wiki:定製指南

1
2
3
4
5
6
7
8
9
10
11
patch:
"一级设定项/二级设定项/三级设定项": 新的设定值
"另一个设定项": 新的设定值
"再一个设定项": 新的设定值
"含列表的设定项/@n": 列表第n个元素新的设定值,从0开始计数
"含列表的设定项/@last": 列表最后一个元素新的设定值
"含列表的设定项/@before 0": 在列表第一个元素之前插入新的设定值(不建议在补靪中使用)
"含列表的设定项/@after last": 在列表最后一个元素之后插入新的设定值(不建议在补靪中使用)
"含列表的设定项/@next": 在列表最后一个元素之后插入新的设定值(不建议在补靪中使用)
"含列表的设定项/+": 与列表合并的设定值(必须为列表)
"含字典的设定项/+": 与字典合并的设定值(必须为字典,注意YAML字典的无序性)

patch 时支持用 / 来分隔节点,打补丁时可以这样写(比如有如下文件 rime_ice.custom.yaml):

1
2
3
patch:
a/b: new_value
c/d/e: new_value

但是非补丁的文件只能展开来写(比如 rime_ice.schema.yaml):

1
2
3
4
5
a:
b: value
c:
d:
e: value

查看patch是否打上

  1. 点击Rime的”重新部署“选项

  2. 查看配置文件夹下的Build目录中的 xxx.schema.yaml

    如: 小鹤音形的Build目录下是 flypy.schema.yaml

  3. 查看 xxx.schema.yaml 是否含有你设置的项

    Tip: 可以先生成原始配置的 xxx.schema.yaml, 再生成自己配置后的 xxx.schema.yaml, 最后将这两个文件对比, 看看异同.

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 以 patch: 开头,后面的内容都需要缩进
patch:

##### 修改单项
# 正确 ✅ 这种方式只覆盖 Shift_L,不影响其他选项
ascii_composer/switch_key/Shift_L: commit_code

# 错误 ❌ 这样导致 switch_key 下将只有 Shift_L 一个选项
ascii_composer/switch_key:
Shift_L: commit_code

##### 如果有较多修改项,可以直接全部复制过来再修改
ascii_composer:
good_old_caps_lock: false
switch_key:
Caps_Lock: commit_code
Shift_L: commit_code
Shift_R: noop
Control_L: noop
Control_R: noop

##### 结尾的 /+ 表示在原基础上追加
# 保留已有的快捷键,追加一个逗号句号翻页
key_binder/bindings/+:
- { when: paging, accept: comma, send: Page_Up }
- { when: has_menu, accept: period, send: Page_Down }

如果选项是数组,比如 switches,得用 switches/@n: 什么的,可读性不好,改多了就乱了,万一原始方案文件更改了顺序就会造成错误,不如全部复制过来再改。

配置

Rime 的配置可以很灵活复杂,比如设置一个快捷键:

  • 可以在方案文件 xxx.schema.yaml 中设定;
  • 也可以在方案的补丁文件 xxx.custom.yaml 中设定;
  • 也可以写在 default.yamldefaut.custom.yaml 中,再在方案中引用;
  • 也可以额外创建一个 YAML 文件,再在方案中中引用。

比如我想让所有方案共用同一套快捷键,不用写很多份。写在 default 中就比较合适,然后再在多个方案中进行引用:

  1. 在 default.yaml 或 default.custom.yaml 中配置

    1
    2
    3
    key_binder:
    bindings:
    # ... 相关快捷键配置
  2. 在多个方案 xxx.schema.yaml 或 xxx.custom.yaml 中引用

    1
    2
    key_binder:
    import_preset: default # 从 default 继承快捷键的相关配置

注解:

  • import_preset 是导入成套的配置。
  • __include 是在当前位置包含另一 YAML 节点的内容。

具体用法参考官方 wiki。

下面是一个典型的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 方案文件 xxx.schema.yaml
punctuator:
# 可以用以下任何方式搞定:

# __include: punctuation:/ # 从共享目录引入预设的 punctuation.yaml

# import_preset: symbols # 从共享目录引入预设的 symbols.yaml

full_shape:
__include: default:/punctuator/full_shape # 从 default.yaml 导入配置
half_shape:
__include: default:/punctuator/half_shape # 从 default.yaml 导入配置
symbols:
__include: symbols_v:/symbols # 从 symbols_v.yaml 导入配置

# 也可以直接在这里配置:
# full_shape:
# ...
# half_shape:
# ...
# symbols:
# ...

码表和词库

字段解释

translator/enable_user_dict 是默认开启的,即记录用户输入内容。

用户词典类型 translator/db_class 的值默认为 userdb,即二进制文件,输入过的内容会记录在 *.userdb/ 文件夹中,只有在同步后才能在同步目录看到人类可读的用户词典;另一个值是 tabledb,会直接在配置目录生成一个人类可读的 txt 文件。如有多平台同步需求,使用默认值 userdb

编写词库

由于 Rime 的设计,拼音词库中并不适用非拼音编码:

1
2
3
4
hello	hello
世界 s j
蒙奇·D·路飞 meng qi d lu fei
非拼音编码 asdasdasd

Rime 在部署时会综合词库中所有音节和拼写规则生成一个映射表,如果开启了简拼,过多的英文单词会导致打字时极其卡顿。上面单个的编码也会导致 sjd 结尾时无法响应超级简拼。

英文建议放到英文方案,非常规的注音建议放到自定义短语 custom_phrase.txt

词库默认的列是:

1
2
3
4
5
6
7
8
9
10
11
---
name: 词库名
version: "版本号"
sort: by_weight(按权重排序) | original(按码表顺序排序)
columns: # 不写 columns 属性时,默认顺序为:
- text # 词汇
- code # 编码
- weight # 权重
- stem # 造词码(不知道是啥,好像和拼音方案没有关系)
...
你好 ni hao 123

对于没有注音,又想设置权重的词库文件,修改列即可:

1
2
3
4
5
6
7
8
9
---
name: xxx
version: "1"
sort: by_weight
columns:
- text # 词汇
- weight # 权重
...
你好 123

挂载自己的词库

词库文件以 .dict.yaml 结尾。

词库由具体方案指定:

1
2
3
4
# rime_ice.schema.yaml

translator:
dictionary: rime_ice # 挂载词库文件 rime_ice.dict.yaml

可以把所有词条堆在这个文件,也可以将这个文件作为一个入口,通过 import_tables 再挂载多个词库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# rime_ice.dict.yaml

---
name: rime_ice
version: "1"
import_tables:
- mydict # 挂载配置目录下的 mydict.dict.yaml
- cn_dicts/mydict2 # 挂载 cn_dicts/ 目录下的 mydict2.dict.yaml
...
# mydict.dict.yaml

---
name: mydict
version: "1"
sort: by_weight
...
你好 ni hao 1
世界 shi jie 1

词库名 xxx.dict.yaml 和词库中的属性 name: xxx 可以不同,但建议设置为一样的。

其他类型的词库,可以通过 一些脚本深蓝词库转换 转为 Rime 格式的。

自定义文本

custom_phrase.txt 中可以放置一些特定的词汇与编码,比如输入 vmail 得到自己的邮箱,输入 vphone 得到手机号,输入 vuser 得到用户名等等。

我自己的理解:每个方案都有一个主翻译器,例如拼音;也可以增加一个次翻译器,例如英文;还可以再增加其他的,例如自定义文本。

custom_phrase.txt 文件内的字词会占据最高权重,即排在候选项的最前面。(默认是这样的,但可以通过 initial_quality 调整各个翻译器的权重)

自定义文本不与其他翻译器互相造词,如果使用了完整编码,那么这个字或词将无法参与造词,即自造词无法被记住。

所以建议只固定非完整编码的字词,「的de」应为「的d」,「是shi」应为「是s」,「仙剑xianjian」应为「仙剑xj」。

注意全拼的 a o e 也是完整拼写,不宜将 a o e 的单字写进自定义文本,否则「啊 哦 呃」无法进行造词。

💡 置顶已经由 pin_cand_filter.lua 实现,可参与造词。

小鹤音形添加词库的另一个方法

patch方法添加

  1. 在”flypy.schema.yaml“ 的补丁文件是 “flypy.custom.yaml” 中添加 patch:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    patch:
    engine/translators/+:
    - table_translator@custom_phraseQRL # 添加词库custom_phraseQRL

    custom_phraseQRL:
    dictionary: ""
    user_dict: flypy_qrl
    db_class: stabledb
    enable_sentence: false
    enable_completion: false
    initial_quality: 0 #本表词和系统词重码居前

    其中:

    • custom_phraseQRL: 词库的名称
    • custom_phraseQRL 项: 自定义的词库名称
      • user_dict: flypy_qrl: 是自定义词库文件的名字 flypy_qrl, 文件全名为 flypy_qrl.txt
      • initial_quality: 设置本表词和系统词重码的位置: 0, 居前; -1, 居后
  2. 添加flypy_qrl.txt文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # coding: utf-8
    # 用户自定义词库
    # 与系统词条重码时居前, 如想居后, 请把需要居前的词条添加进该文件, 然后分别为两个词条添加权重, 本文件权重范围: 0-10
    #
    # 编码格式:字词+Tab符+编码(用户词库本身有重码则还需后面+Tab符+权重, 权重大者居前, 权重数字随意)
    #
    # ------------------强调一下----------------------
    #
    # 词条和编码之间的不是空格, 而是Tab符
    # 按住键盘 G 键, 切换到功能键盘, 使用上面的Tab键
    #
    # ------------------------------------------------
    #
    # 简词补全放本文件内, 不需要可删除
    # 用户词库, 下行开始添加, 编码格式见上, 部署后生效

    缘起性空 yqxk

配置中英文切换提示

patch补丁(推荐)

本人使用的是小鹤音形, 因此方案 “flypy.schema.yaml“ 的补丁文件是 “flypy.custom.yaml”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
patch:
switches:
- name: ascii_mode
reset: 0
states: [ , ]
# states: [ 中文, 英文 ]
- name: full_shape
# states: [ 半角, 全角 ]
- name: simplification
# states: [ 简, 繁 ]
reset: 0
- name: ascii_punct
# states: [ 。,, ., ]
reset: 0

同样地, 也可以使用单项修改(不推荐, 因为是修改列表, 容易乱, 不如复制原版, 在此基础上修改)

1
switches/@1/states: [ ,  ]

修改原文件(不推荐)

这里以小鹤音形为演示, 配置文件皆为 flypy*

  1. 进入Rime配置文件夹: ~/Library/Rime

  2. 打开 flypy.schema.yaml 文件

  3. switches项中的name为”ascii_mode“项添加 states: ["中文", "英文"]states: [ 中文, 英文 ], 如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    switches:
    - name: ascii_mode
    reset: 0
    states: ["中文", "西文"]
    - name: full_shape
    - name: simplification
    reset: 0
    - name: ascii_punct
    reset: 0

关闭全角按键shift+space

patch补丁(推荐)

本人使用的是小鹤音形, 因此方案 flypy.schema.yaml 的补丁文件是 flypy.custom.yaml

下面两种方法2选1

  • 修改单项

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    patch:
    key_binder/bindings:
    - {accept: bracketleft, send: Page_Up, when: paging} # [上翻页
    - {accept: bracketright, send: Page_Down, when: has_menu} # ]下翻页
    - {accept: comma, send: comma, when: paging} #注销逗号翻页
    - {accept: period, send: period, when: has_menu} #注销句号翻页
    - {accept: semicolon, send: 2, when: has_menu} #分号次选
    # - {accept: Release+semicolon, send: semicolon, when: has_menu} #如启用此行,则分号引导符号功能无效
    - {accept: Release+period, send: period, when: composing} #句号顶屏
    - {accept: Release+comma, send: comma, when: composing} #逗号顶屏
    - {accept: "Tab", send: Escape, when: composing}
    - {accept: "Shift_R", send: Escape, when: composing}
    - {accept: "Shift+space", toggle: noop, when: always} #切换全半角
    - {accept: "Control+period", toggle: ascii_punct, when: always} #切换中英标点
    - {accept: "Control+j", toggle: simplification, when: always} #切换简繁

    可以说仅修改 key_binder/bindings 单项, 而不包括 bindings 的单个按键项

  • 修改整个段落(更大项)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    patch:
    key_binder:
    import_preset: default #方案切换相关
    bindings:
    - {accept: bracketleft, send: Page_Up, when: paging} # [上翻页
    - {accept: bracketright, send: Page_Down, when: has_menu} # ]下翻页
    - {accept: comma, send: comma, when: paging} #注销逗号翻页
    - {accept: period, send: period, when: has_menu} #注销句号翻页
    - {accept: semicolon, send: 2, when: has_menu} #分号次选
    # - {accept: Release+semicolon, send: semicolon, when: has_menu} #如启用此行,则分号引导符号功能无效
    - {accept: Release+period, send: period, when: composing} #句号顶屏
    - {accept: Release+comma, send: comma, when: composing} #逗号顶屏
    - {accept: "Tab", send: Escape, when: composing}
    - {accept: "Shift_R", send: Escape, when: composing}
    - {accept: "Shift+space", toggle: noop, when: always} #切换全半角
    - {accept: "Control+period", toggle: ascii_punct, when: always} #切换中英标点
    - {accept: "Control+j", toggle: simplification, when: always} #切换简繁

修改原文件(不推荐)

  1. 进入Rime配置文件夹

  2. 打开 flypy.schema.yaml 文件

  3. 搜索 shift+space 项, 并修改 togglenoop

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    key_binder:
    import_preset: default #方案切换相关
    bindings:
    - {accept: bracketleft, send: Page_Up, when: paging} # [上翻页
    - {accept: bracketright, send: Page_Down, when: has_menu} # ]下翻页
    - {accept: comma, send: comma, when: paging} #注销逗号翻页
    - {accept: period, send: period, when: has_menu} #注销句号翻页
    - {accept: semicolon, send: 2, when: has_menu} #分号次选
    # - {accept: Release+semicolon, send: semicolon, when: has_menu} #如启用此行,则分号引导符号功能无效
    - {accept: Release+period, send: period, when: composing} #句号顶屏
    - {accept: Release+comma, send: comma, when: composing} #逗号顶屏
    - {accept: "Tab", send: Escape, when: composing}
    - {accept: "Shift_R", send: Escape, when: composing}
    - {accept: "Shift+space", toggle: noop, when: always} #切换全半角
    - {accept: "Control+period", toggle: ascii_punct, when: always} #切换中英标点
    - {accept: "Control+j", toggle: simplification, when: always} #切换简繁

设置中文输入使用英文标点

patch补丁(推荐)

本人使用的是小鹤音形, 因此方案 flypy.schema.yaml 的补丁文件是 flypy.custom.yaml

下面两种方法2选1

  • 修改单项

    1
    2
    patch:
    punctuator/import_preset: alternative
  • 修改整个段落(更大项)

    1
    2
    3
    patch:
    punctuator:
    import_preset: alternative

修改原文件(不推荐)

  1. 下载alternative

    1
    curl -JLO https://gist.githubusercontent.com/lotem/2334409/raw/0941ff22b30e8a6199838623d31a9406ee1d8a74/alternative.yaml
  2. 进入Rime配置文件夹

  3. 打开 default.custom.yaml 文件

  4. punctuator项的import_presetalternative

    1
    2
    punctuator:
    import_preset: alternative

单词自动上屏

patch补丁

本人使用的是小鹤音形, 因此方案 flypy.schema.yaml 的补丁文件是 flypy.custom.yaml

下面两种方法2选1

  • 修改单项

    1
    2
    patch:
    speller/auto_select: false #顶字上屏
  • 修改整个段落(更大项)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    patch:
    speller:
    alphabet: "abcdefghijklmnopqrstuvwxyz;'"
    initials: ';abcdefghijklmnopqrstuvwxyz'
    finals: "'"
    #delimiter: " '"
    max_code_length: 4
    auto_select: false #顶字上屏
    auto_select_pattern: ^;.$|^\w{4}$
    auto_clear: max_length #manual|auto|max_length 空码按下一键确认清屏|空码自动清|达到最长码时后码顶上清屏

修改原文件(不推荐)

1
2
3
4
5
6
7
8
9
speller:
alphabet: "abcdefghijklmnopqrstuvwxyz;'"
initials: ';abcdefghijklmnopqrstuvwxyz'
finals: "'"
#delimiter: " '"
max_code_length: 4
auto_select: false #顶字上屏
auto_select_pattern: ^;.$|^\w{4}$
auto_clear: max_length #manual|auto|max_length 空码按下一键确认清屏|空码自动清|达到最长码时后码顶上清屏

待测试

开关记忆

方案中有几个开关(switches),比如简繁开关、Emoji 开关、中英标点开关。。。

如果设定了 reset,值为 0 或 1,则默认使用第一个或第二个值,即便使用时修改了,切换程序后还是默认值。

如果想让输入法永远记住,需要取消设置 reset,并在 default.custom.yaml 中写入 save_options

*永远记住的前提是通过方案选单选择,而不是快捷键切换 (╯’-’)╯︵┻━┻

如何删除相关功能

比如删除英文输入,所有的相关配置是这些:

1
2
3
4
5
6
7
8
# dependencies 下的:
- melt_eng

# engine/translators 下的:
- table_translator@melt_eng

melt_eng:
dictionary: melt_eng

拼字方案同样,此外还有一些 Lua 的功能,直接在 engine 下注释掉那一行就禁用了。

删词or降权

可以删除自造词,或降低词库中已有词语的权重(回到原始权重,不是降到最低)。

  • 鼠须管使用 Fn + ⇧ + ⌫
  • 小狼毫使用 Ctrl/Shift + Del

想永久删除一个词库中存在的词汇,只能编辑词库,重新部署。

如果各位有在使用过程中有发现什么错别字,希望可以提个 issue。

Tab 切光标

这功能挺好用的,每次用别人的电脑打字都会怀念这个功能。

已经默认开启,可以使用 Tab 或 Shift + Tab 在拼音中前后移动。

对于「xian西安」「tian提案」这种拼音,如果想切到「xi、ti」的后面,只能用左右方向键移动。

另外 Shift + ⌫ 可以删除单个汉字的拼音。

不同的上屏方式

按下空格会上屏汉字,按下回车会上屏字母(可临时输入一些词库中没有的英文)。

以输入「虐心 nue’xin」为例:

  • 按回车,上屏的是 nuexin
  • 按 Ctrl/Shift + 回车,上屏的是 nve xin。(u → v,中间有空格)

translator/preedit_format 这里会影响输入框和 shift + 回车时的显示,比如是显示 nue、nve 或 nüe。

如果是双拼方案,preedit_format 还可以选择是否在输入框进行转换,比如小鹤双拼输入 zz 时,是显示 zz 还是 zou

要设置双拼不转换为全拼,可以直接把 preedit_format 及下面那些 xform 都删除,或者这样打补丁:

1
2
patch:
translator/preedit_format: []

opencc

opencc 除了做简繁转换,也可以做词语映射。

比如想输入摄氏度的符号 °C ,可以自定义文本 custom_phrase.txt 中写上:

1
°C	sheshidu

但这样,这个符号会顶到第一个候选项,重码时影响平时打汉字。推荐用 opencc 的方法,Emoji 就是这样实现的。

1
2
3
摄氏度	摄氏度 °C
足球 足球 ⚽
输入内容<Tab>响应内容1<Space>响应内容2<Space>响应内容3...

输入 摄氏度,第一个候选项是其本身,后续则是映射的其他内容。类似输入 提手旁 会得到 提手旁 扌,输入 相泽南 会得到 相泽南 相沢みなみ 等等都是这么做的。

这个「输入内容」其本身应该在词库中存在,否则只能输入过一次后才会有响应。

还有个用法是 show_in_comment: true,可以让「响应内容」放到 comment 里面。

show_in_comment: true 可以实现显示英文单词的翻译,类似哈利路亚输入法,尝试过加入这个功能,一是没有找到比较好的简短翻译数据;二是 Rime 的 comment 区域并不是一个独立存在的窗口,翻译和候选项挤在一起看起来乱糟糟的。

同步

文件说明

installation.yaml 文件在第一次部署后会自动生成,在这里可以编辑当前设备的 ID 和同步目录,如:

1
2
3
4
5
# 本机的 ID 标志,默认是一串 UUID
# 生成的文件夹是这个名字,可以改成更好识别的名称
installation_id: "MBP-001"
# 同步的路径,默认是当前配置目录下的 `sync/`
sync_dir: "/file/path/sync"

在你输入过内容后,配置目录下会生成 *.userdb/ 文件夹,里面是二进制的用户词典。

点击「同步用户数据」后,Rime 会和配置目录下的 *.userdb/ 进行双向更新同步,并在同步目录(/file/path/sync/MBP-001)下生成的 *.userdb.txt,里面都是输入过的内容。

同步目录里还有其他一些没用的文件,Rime 额外单向备份了配置目录下的 YAML 和 TXT 文件,但只有根目录的,比如文件夹里的词库、八股文模型、rime.lua 就没有被同步过来。

⚠️ Windows 用户注意 YAML 语法,反斜杠在双引号中转义,在单引号中不转义:

1
2
sync_dir: "c:\\file\\path\\sync"
sync_dir: 'c:\file\path\sync'

多设备同步

将所有平台的 sync_dir 设定为同一个目录,比如 iCloud、Dropbox 的目录。

多个设备在这个目录中会生成并列的文件夹,里面是用户词典。

PC-1 里点【同步】,通过网盘同步到 PC-2,PC-2 再点同步,才可以获得 PC-1 输入过的内容。

用户词典迁移

如果之前在用别的方案,如 pinyin_simpluna_pinyin

  1. 将之前的 pinyin_simp.userdb.txtluna_pinyin[_simp].userdb.txt 放到同步目录
  2. 命名为 rime_ice.userdb.txt
  3. 修改文件里面的 #@/db_namerime_ice
  4. 点击【同步用户数据】后就可以了

如果之前用的是繁体词库,还需要提前做一个简繁转换,注意不要把 Tab 全转为空格了。

简单的方法,比如 Mac 上通过 VSCode 打开 ➡️ 全选 ➡️ 左上角 Code ➡️ 服务 ➡️ 将文本转换为简体中文。

或者用 opencc

1
$ opencc -c t2s -i in.txt -o out.txt

git同步配置文件

本人主要使用了3个配置文件: “flypy.custom.yaml, flypy_qrl.txt, alternative.yaml“, 分别对应为 flypy补丁文件, 个人词库, 中英文标点替换.

本步骤适用于MacOS, 具体步骤如下

  1. 创建git仓库, 将配置文件复制到git仓库本地文件夹中

  2. 将配置文件的软链接添加到Rime配置路径

    可使用以下命令添加软链接

    • ln -s -f <指向的目标文件> <存放软链接的文件夹>
  3. 如果修改修改git仓库本地文件夹或Rime配置文件夹中都是一样的, 从而保障线与离线一致性