进阶配置文件

配置文件与数据目录

数据的两层结构、目录职责、覆盖机制、三层合并,以及按域组织的完整配置项参考

高级主题

普通用户通过设置工具即可完成全部配置,修改即时生效。本分类面向需要手动放置文件、编辑 config.toml、或查阅每个配置项确切含义的用户。

数据的两层结构

清风输入法把数据分成系统预置用户数据两层,用户数据又按"是否随账户漫游"拆到两个系统目录:

目录角色升级行为
<安装目录>\data\(安装版)
<解压目录>\data\(便携版)
程序自带的系统预置数据,只读随安装包整体替换
%APPDATA%\WindInput\漫游用户数据)配置、词库、自定义主题 / 方案等个人化内容升级时不清理,仅卸载时手选"删除用户数据"才删除
%LOCALAPPDATA%\WindInput\本机数据)词库编译缓存、日志、运行时状态等本机产物升级时不清理;缓存可安全删除,会自动重建

%APPDATA%(漫游)放换机也想带走的东西;%LOCALAPPDATA%(本机)放与这台机器绑定、可重建的东西。便携版没有这种拆分,两处都指向解压目录下的 userdata\

不要在程序目录存放个人文件

安装版升级时会先卸载旧版再安装,安装目录(默认 C:\Program Files\WindInput\)及其 data\ 子目录下的文件都会被清理重写。所有个人化内容请放入用户数据目录,升级时不会被清理。

同结构覆盖机制

%APPDATA%\WindInput\ 与程序 data\ 目录采用相同的子目录结构。两侧存在同名文件时,用户数据目录中的文件优先生效。因此你可以在漫游目录下放同名文件来覆盖内置版本,而无需修改程序目录里的任何文件——程序目录在升级时会被整体替换,放在那里的修改一定会丢。

覆盖是整份文件替换,不是逐项合并:一旦用户目录存在同名文件,内置那份就完全不参与。所以正确做法是先把内置文件复制过来再改,而不是只写你想改的那几行。

例外:config.toml 与 compat.toml 是合并的

只有这两个配置文件采用逐项合并(用户文件只需写想改的项,其余跟随内置默认值)。其余文件一律整份替换。

可以覆盖哪些文件

下表路径相对于两个目录根(程序 data\%APPDATA%\WindInput\)。

文件作用
schemas\<方案ID>.schema.toml方案定义。放同名文件即可改内置方案的词库列表、码长等固定参数
schemas\<方案>\<词库>.dict.yaml词库。也可只放编译好的同名 .wdat 而不带源文件
schemas\common_chars.txt通用规范汉字表,决定候选过滤(filter_mode)中"常用字"的判定范围
schemas\shuangpin\<布局>.toml双拼布局定义,可改键位映射或新增布局
schemas\<方案>\unigram.txt拼音长句打分用的语言模型(由方案的 unigram_path 指定)
schemas\ 下的拆字库与字根字体由方案 [engine.chaizi]db_path / font_path 指定,见拆字配置
themes\<主题名>\theme.toml主题。同名目录覆盖内置主题
system.phrases.toml系统短语的初始内容,见下方说明
pinyin_map.txt汉字读音表,用于逐字拼音反查与编码提示

data\opencc\(简繁转换表)不支持覆盖,它随程序版本整体更新。

覆盖 system.phrases.toml 只改「初始内容」

系统短语在首次启动时从这个文件读入用户数据库,之后一切增删改都以数据库为准。覆盖这个文件会改变系统短语的初始集合(内容变化时会同步进库),但你在设置工具里对单条短语的修改仍然只存在数据库里,不会回写任何文件。日常增删短语请用自定义短语页的方法。

确认覆盖是否生效

覆盖没有任何界面提示,但每一次生效的覆盖都会记进日志。打开 %LOCALAPPDATA%\WindInput\logs\ 下的最新日志,搜索 用户覆盖生效

用户覆盖生效[data]: system.phrases.toml → C:\Users\你\AppData\Roaming\WindInput\system.phrases.toml
用户覆盖生效[dict]: wubi86/wubi86_jidian.dict.yaml → ...

方括号里是资源类别(schema 方案 / dict 词库 / resource 方案资源 / shuangpin 双拼布局 / theme 主题 / data 数据根文件)。默认日志级别即可看到,无需调级别。

日志里没有对应记录,说明你的文件没被认到——常见原因是路径层级或文件名不对(必须与 data\ 下的相对路径完全一致),或者放进了 %LOCALAPPDATA% 而不是 %APPDATA%

生效时机与撤销

放置或修改覆盖文件后需要重启输入法system.phrases.tomlpinyin_map.txtcommon_chars.txt 必须重启服务;方案、词库、主题也可在设置工具里刷新 / 重建缓存)。程序不监视这些文件的变化。

撤销覆盖只需删除用户目录里的那一份,内置版本自动重新生效。

覆盖内置方案文件后,请不要在设置工具里点「删除」

用户目录一旦存在与内置方案同名的 .schema.toml(如 wubi86.schema.toml),设置工具的方案列表会把它识别为用户方案并允许删除。此时点删除虽然只删掉你的覆盖文件(方案本身会回到内置版本),但会一并清空该方案的自定义词、词频与候选调整数据

要撤销这类覆盖,请直接到 %APPDATA%\WindInput\schemas\ 删除那个文件。

漫游数据目录(%APPDATA%\WindInput\

%APPDATA%\WindInput\
├── config.toml                    # 用户全局配置(diff 保存,仅含与默认值不同的字段)
├── userdata.redb                  # 用户数据库(自定义词、词频、置顶/删词、短语等)
├── compat.toml                    # 用户自定义的应用兼容性规则
├── system.phrases.toml            # 覆盖内置系统短语的初始内容(可选)
├── schemas\                       # 输入方案与方案级词库
│   ├── pinyin.schema.toml         # 方案配置(同名即整份替换内置方案)
│   ├── wubi86.schema.toml
│   ├── my_schema.schema.toml      # 自定义新方案
│   └── <方案词库>.dict.yaml        # 方案引用的 RIME 词库(YAML 格式)
├── schema_overrides\              # 设置工具写入的方案差异项(程序维护)
│   └── <方案ID>.toml
└── themes\                        # 自定义主题
    ├── default\theme.toml         # 覆盖内置主题(可选)
    └── <自定义主题名>\theme.toml   # 新增第三方主题
文件 / 目录职责
config.toml全局配置。采用 diff 保存,只写与系统默认不同的字段
userdata.redb用户词库、词频、候选调整、短语等用户数据(程序维护,勿手改)
compat.toml应用兼容性规则(应用级候选定位规则也在此,不在 config.toml
system.phrases.toml覆盖内置系统短语的初始内容;日常增删短语走设置工具,存数据库
schemas\*.schema.toml用户方案。与程序 data\schemas\ 同名时整份替换内置方案,也可放全新方案
schemas\*.dict.yaml方案引用的 RIME 词库,第三方词库文件也放同目录
schema_overrides\<方案ID>.toml设置工具写入的方案差异项(附加词库开关、双拼布局等),深合并到方案文件之上(程序维护,一般无需手改)
themes\<主题名>\theme.toml用户主题(TOML 格式),同名目录覆盖内置主题

config.toml 只有几行是正常的

diff 保存下,用户配置文件可能只包含 version = 1 和少量字段——只保存了与默认值不同的项,未改动的字段会自动跟随系统默认值的更新。

本机数据目录(%LOCALAPPDATA%\WindInput\

%LOCALAPPDATA%\WindInput\
├── cache\        # 词库编译缓存(.wdat),可安全删除,下次自动重建
├── logs\         # 运行日志
└── state.toml    # 运行时状态(工具栏位置、上次中英/标点模式等)
文件 / 目录职责
cache\词库编译缓存,可安全删除,会自动重建
logs\日志文件,默认日志目录
state.toml运行时状态(上次中英/标点状态、工具栏位置等,程序维护,勿手改)

手工编辑 config.toml

全局配置为 TOML 格式,用户配置文件首行带版本号 version = 1。方案配置(*.schema.toml)也是 TOML;RIME 词库文件(*.dict.yaml)为 YAML 格式。

配置采用三层合并,优先级从低到高:

  1. 代码默认值 — 程序内置默认配置
  2. 系统预置配置 — 随程序分发的 data\config.toml
  3. 用户配置%APPDATA%\WindInput\config.toml

三层深合并:表递归合并(高层键覆盖 / 新增低层同名键),标量与数组由高层整体覆盖。保存时按 diff 只写与默认不同的字段。

本参考页的默认值以系统预置为准

下面各域参考页标注的"默认值",取自随程序分发的 data\config.toml(第 2 层)。少数字段的代码内置默认值(第 1 层)与之不同,会在对应条目上注明——你实际拿到的是系统预置值。

也可以用命令行读写配置,无需手动编辑文件:

wind_input config get ui.candidate.per_page
wind_input config set ui.candidate.per_page 9
wind_input config describe ui.candidate.layout

命令行工具 · config

配置项分域参考

配置按七个正交大类组织,逐域列出每个配置项的类型、可选值、默认值与含义:

内容参考页
[schema]方案选择与全局引擎配置(码表 / 拼音 / 混输 / 调频 / 造词)方案与引擎配置
[input]输入行为:标点、智能符号、配对、临时英文 / 拼音、网址、简繁、命令栏输入行为配置
[keys]全部按键:切换、选择 / 翻页 / 以词定字、功能快捷键、全局热键按键配置
[ui]外观:候选窗、字体、主题、模式指示、悬停提示、状态气泡、工具栏外观配置
[stats] [compat] [debug]输入统计、宿主渲染白名单、日志调试统计、兼容与调试

改配置的另外两条路

除手工编辑外,设置工具提供图形界面(覆盖绝大多数常用项),命令行 config 可脚本化读写。功能页面只讲"这个功能怎么用",配置项的确切键名与取值一律查本分类。

相关阅读

本页目录