在《RIME输入法的相关配置》中,我介绍了相关的配置方法,留下了一个问题,就是如何自动化的处理配置与同步问题。
这篇文章主要就是为了补充相关内容。
本文所有的代码,都在我的代码库中:https://git.yangyq.net/laoyang/rime-sync-config
配置文件的进一步做法
上一篇文章提到过,用户目录最好是使用默认的目录,只把需要的内容做一下同步。事实上,重要的这几个文件,甚至可以不放在用户目录下,而是采用软连接的方式,也就是说,重要的配置文件,放在网盘的同步文件夹中,在用户目录下,做几个快捷方式。
重要的配置文件主要有:custom_phrase.txt、default.custom.yaml、default.yaml、weasel.custom.yaml、weasel.yaml、wanxiang.schema.yaml。当然,你还可以备份其他的相关文件到你的网盘中。
创建软连接,会很麻烦,所以我写了一个bat文件,用来自动化创建这些软连接。
这个bat文件,在代码库中,名字为:Initialization.bat。
如果觉得太复杂,完全不需要看懂,只需要知道怎么用就行了。
该文件会自动的从注册表中读取RIME的安装路径和用户目录,从而把你设定的配置文件,都设置成当前bat所在路径的上一层目录的config下的相关文件的软连接。
例如,我的目录层次结构是这样的:
其中,bat里面存储的,都是需要用到的脚本,config文件夹下面存储的是所有备份出来的,需要做软连接的配置文件。请按照当前的目录格式存放相关的内容。
右键Initialization.bat,选择以管理员身份运行。该代码会执行下列操作:
- 自动读取小狼毫的安装路径。
- 自动读取小狼毫个人配置文件夹路径。
- 获取当前路径。
- 获取上层目录的config文件夹。
- 挨个读取config下的文件,并将个人配置文件夹中的相关文件,设置为config下相同名字的软连接。
- 设置一个定时任务,每十分钟运行一次,如果发现这台电脑已经空闲了30分钟,则自动同步用户数据。
如果不需要自动同步用户数据功能,可以把这个文件中的相关部分删除。
:: 接下来设置定时任务
echo 目标bat文件路径%TARGET_SCRIPT%
:: 检查 autosync.bat 是否存在
if not exist "%TARGET_SCRIPT%" (
echo 错误:未找到 %TARGET_SCRIPT%
pause
exit /b 1
)
echo 目标vbs文件路径%TARGET_VBS%
:: 检查 autosync.bat 是否存在
if not exist "%TARGET_VBS%" (
echo 错误:未找到 %TARGET_VBS%
pause
exit /b 1
)
:: 转义路径中的空格和特殊字符(用双引号包裹,并在 schtasks 中用 \" 转义)
set "QUOTED_SCRIPT=\"%TARGET_SCRIPT%\""
:: 任务名称
set "TASK_NAME=RimeAutoSync"
:: 创建每10分钟运行一次的任务(从现在开始,每天重复)
schtasks /create ^
/tn "%TASK_NAME%" ^
/tr "%CMD%" ^
/sc minute ^
/mo 10 ^
/f
if %errorlevel% equ 0 (
echo.
echo 定时任务创建成功!
echo - 任务名称: %TASK_NAME%
echo - 执行频率: 每 10 分钟检查一次
echo - 实际同步条件: 系统空闲 ≥30 分钟
echo - 脚本路径: %CMD%
echo.
echo 注意:请确保 autosync.bat 与本脚本在同一目录。
) else (
echo 创建失败。建议以管理员身份运行(非必须,但可避免权限问题)。
)
echo 任务创建成功,按任意键退出.
自动同步功能
上一节介绍到,初始化脚本最后会创建一个定时任务,该任务每十分钟运行一次,如果发现这台电脑已经空闲了30分钟,则自动同步用户数据。
在bat中有相关代码实现。下面对代码进行说明:
autosync.bat文件是主要的同步文件,完成小狼毫安装目录的获取,以及同步和重新部署的自动调用。get_idle_minutes.ps1,是一个powershell脚本,主要用来获取当前的空闲时间。根据设定,定时任务每10分钟运行一次,此时,需要检测电脑是否已经空闲了30分钟,只有这样才开始同步和重新部署,因为重新部署时是没有办法使用电脑的。run_hidden.vbs,主要用来隐藏autosync.bat的命令窗口。如果没有这个文件,自动任务直接调用autosync.bat,那么每次运行任务都会有一个CMD命令窗口一闪而过,影响体验,所以用这个脚本,将同步过程和脚本调用,完全置于后台,用户完全没有任何感觉。- 运行后,在当前目录下,会产生一个文件:
autosync.log,主要用来记录自动任务的运行日志,如果确保同步任务没有问题,可以在autosync.bat中,将写入日志的功能删除。就是所有结尾带有>> "%LOG%"的代码行。
完整的操作
此时,你已经拥有了一个稳定流畅,没有弹窗广告,并且记录你所有输入词库的个性化输入法。完整的做法是这样的:
- 找一个同步的网盘。把我的代码库中的文件,下载下来后,放进网盘,按照固定的目录格式。
- 修改config文件夹中的文件。
- 右键bat目录下的
Initialization.bat,选择以管理员身份运行,一路回车,自动完成所有设定。
然后就可以使用这个完全属于你自己的输入法了。
新电脑的设定
如果此时你需要在一台新电脑上设置你的输入法,只需要这样做:
- 安装网盘,同步你网盘中的文件。
- 安装输入法,下载万象拼音,和万象拼音模型,放入用户目录中。如果不怕占用空间,甚至可以将万象拼音模型也放入config文件夹,创建软连接。
- 修改
installation.yaml,设定当前电脑的名字和同步网盘的路径。 - 右键bat目录下的
Initialization.bat,选择以管理员身份运行,一路回车,自动完成所有设定。
Initialization.bat是可以重复执行的,不用管之前是不是已经设置过。
如果要修改配置,只需要修改网盘中config文件夹下的配置文件,然后重新部署就可以了。
结语
经过几天的操作,算是把输入法问题给解决了。
如果有任何问题,都可以给我留言。



