文件管理
在元书中,文件有三个存放路径,分别是“应用文件”、“键盘文件”与“iCloud 文件”。
- 应用文件:在元书应用内部沙盒目录下,可使用第三方应用查看、编辑等操作,如「文件管理」、「Textastic」等文件管理应用。
- 此目录下文件是我们日常修改使用的目录
- 键盘文件:供键盘使用的路径,在系统的 AppGroup 路径下,其他应用无法访问,只能通过元书内置的文件管理功能查看、编辑等操作。
- 因系统限制,在不开启键盘的「完全访问」权限时,键盘无法写文件到此目录下
- 如您需要保留自造词,调频等数据,必须开启「完全访问」权限
- iCloud 文件:主要用来实现做备份,自造词功能等功能。在 iCloud 的元书目录下。
为什么要分应用文件,键盘文件呢?主要是为了满足不同的使用场景:
- 可以使用第三方文件编辑器修改文件;
- 可以使用外部工具更新方案文件;
如果只使用键盘文件路径,用户将无法在应用外部完成对文件的管理与编辑。
因文件可能存放在三个不同的路径下,元书为了保持三个路径下文件的一致性,设计了下面的工作机制:
在 rime 每次运行「重新部署」和「同步」时,
- 检查元书
iCloud 文件/RimeUserData目录下文件变更状态,如果存在变更,则从 iCloud 云端同步这些变化的文件: - 复制 iCloud 中元书方案文件:在等待 1 完成后,元书会复制
iCloud 文件/RimeUserData目录下文件至应用文件/RimeUserData目录下; - 复制键盘文件:在完成 2 后,元书会复制
键盘文件/RimeUserData目录下文件至应用文件/RimeUserData目录下; - 执行「重新部署」或「同步」操作。
- 在「重新部署」或「同步」完成后,复制
应用文件/RimeUserData目录下文件至键盘文件/RimeUserData目录下;
复制 iCloud 中的元书方案文件
Section titled “复制 iCloud 中的元书方案文件”从工作机制中我们可以看到,元书会在每次「重新部署」和「同步」时,复制 iCloud 中的元书方案(iCloud 文件/RimeUserData )文件至「应用文件」目录下(应用文件/RimeUserData)。
这个过程是强制的,没有开关可以关闭。那么如何控制哪些文件会被复制呢?
在应用文件/RimeSharedSupport目录下,有一个名为 exclude_iCloud_rime_files.txt 的文件。
此文件用来设置排除从 iCloud 中复制的文件的正则表达式。类似黑名单的功能,即名单上的不复制。
默认文件内容如下:
# #符号为注释# 其余内容一行为一个正则表达式.*[.]userdb.*$.*[/]installation[.]yaml$.*[.]userdb.*$:表示不复制任何路径中包含.userdb内容的文件,即排除userdb文件的复制;.*[/]installation[.]yaml$:表示不复制路径中以installation.yaml结尾的文件。
用户可以根据需要自行修改此文件内容,添加或删除正则表达式来控制 iCloud 文件的复制行为。
复制键盘文件
Section titled “复制键盘文件”从工作机制中我们可以看到,元书会在每次「重新部署」和「同步」时,复制「键盘文件」目录下(键盘文件/RimeUserData)文件至「应用文件」目录下(应用文件/RimeUserData)。
这个过程默认是开启的,由 「rime」-> 「禁止复制键盘文件」开关控制。
如果您不用自造词,或者键盘不会生成您需要保存的任何文件,可以开启此开关,禁止复制键盘文件的行为。
如果你想保留复制键盘文件的行为,且控制键盘上哪些文件会被复制。可以通过 include_keyboard_rime_files.txt 文件来实现。
在应用文件/RimeSharedSupport目录下,有一个名为 include_keyboard_rime_files.txt 的文件。
此文件用来设置从键盘文件复制的文件的正则表达式。类似白名单的功能,即名单上的才会被复制。
默认文件内容如下:
# #符号为注释# 其余内容一行为一个正则表达式.*[.]userdb.*$# 如果您使用 txt 类型自造词,可以取消此屏蔽#.*[.]txt$.*[.]userdb.*$:表示复制任何路径中包含.userdb内容的文件,即复制自造词.userdb目录下的全部文件;.*[.]txt$:表示复制路径中以.txt结尾的文件,即键盘文件下所有 txt 的文件。- 此行默认被注释掉,如果您使用 txt 类型自造词,可以取消此行注释。
键盘无法保存自造词
Section titled “键盘无法保存自造词”键盘无法保存自造词,通常是因为没有开启键盘的「完全访问」权限。
如果在开启了键盘「完全访问」权限后,仍然无法保存自造词,需要检查方案是否开启了自造词功能。
键盘生成的自造词无法同步
Section titled “键盘生成的自造词无法同步”请先确保键盘可以保存自造词(见问题:键盘无法保存自造词),在确认正常的情况下,如果发现自造词无法同步的问题,请检查以下几点:
- 请确认「rime」-> 「禁止复制键盘文件」开关是否关闭,如果开启了此开关,键盘文件将不会被复制至「应用文件」目录下,自然无法同步;
- 请确认
include_keyboard_rime_files.txt文件中,是否包含了自造词文件的正则表达式, 正常情况下,默认文件内容已经包含了自造词文件的正则表达式.*[.]userdb.*$,如果您使用 txt 类型自造词,请取消注释.*[.]txt$这一行;
如何将键盘文件复制到应用目录
Section titled “如何将键盘文件复制到应用目录”默认情况下,元书会在每次「重新部署」和「同步」时,将符合 include_keyboard_rime_files.txt 条件的键盘文件复制到应用目录下。
所以你需要在 include_keyboard_rime_files.txt 文件中,添加相应的正则表达式,来控制需要复制的键盘文件。