设置说明词库管理

快捷短语

系统短语与自定义短语的管理、触发方式、权重与 position,以及 zz 系列符号与日期时间、农历变量

v0.116.0

短语让你用一个简短编码上屏一段常用文本:邮箱、地址、签名、常用回复等。短语是全局共享的,不区分方案,写入后跨所有输入方案立即生效,无需编辑方案文件。

管理位置:设置工具 →「词库」页 → 顶部「词库类型」选择快捷短语。分「系统短语」与「用户短语」两个子标签。

系统短语

内置短语,只读,但可以逐条开关:

操作说明
启用开关逐条开启或关闭
查看弹窗查看完整编码与内容(可复制)
恢复默认重置所有系统短语的启用状态

系统预置的短语分三类,都可以在任何中文输入状态下直接打编码触发(短语候选追加在当前方案候选之后)。

日期时间类

编码功能示例
date日期(多格式)2026年4月24日 / 2026-04-24 / 2026/04/24
time时间(多格式)14:30:00 / 14:30 / 14时30分00秒
datm日期时间2026-04-24 14:30:00
week星期星期四 / 周四
uuid生成 UUID550e8400-e29b-41d4-a716-446655440000
tmts时间戳1706000000(秒)/ 1706000000000(毫秒)
zzrq快速日期(多格式)
zzsj快速日期时间(多格式)
zzxq快速星期(含日期)

zz 系列符号

输入 zz 前缀 + 分类缩写,可快速输入各类特殊符号:

编码分类示例
zzbd标点符号、。·…""【】
zzsz圈数数字❶❷❸❹❺
zzzm圈字母ⓐⓑⓒⓓⓔ
zzpp中文偏旁亻彳讠饣艹
zzdw单位符号㎎㎏㎜㎝㎞
zzpy拼音声调āáǎàōóǒò
zzds点号数字⒈⒉⒊⒋⒌
zzks括号数字⑴⑵⑶⑷⑸
zzys圆圈数字①②③④⑤
zzzs中文数字㈠㈡㈢㈣㈤
zzhb货币符号$¢£¥¤
zzjt箭头符号→↑←↓↖↗
zzde大写俄文АБВГДЕ
zzxe小写俄文абвгдеж
zzdl大写罗马ⅠⅡⅢⅣⅤ
zzxl小写罗马ⅰⅱⅲⅳⅴ
zzdx大写希腊ΑΒΓΔΕΖ
zzxx小写希腊αβγδεζ
zzpj平假名ぁあぃいぅう
zzjp片假名ァアィイゥウェ
zzsx数学符号±×÷∈∏∑√∞
zzsb上标¹²³⁴⁵ⁿ
zzxb下标₁₂₃₄₅
zzts特殊符号℃°‰♂♀§№
zzzy注音符号ㄅㄆㄇㄈㄉ

打前缀 zz 会先看到分类导航条目,选中后自动补全到完整码进入二级选择;直接打完整码(如 zzbd)则展开为该组的字符候选。

co 系列命令

co 开头的一批示例命令短语——选中后执行动作而非上屏文本(打开网址、启动程序、切换输入法状态等)。可在系统短语列表里浏览、开关或仿写。

用户短语

自定义短语,支持完整管理:

操作说明
添加 / 编辑填写编码(缩写)、短语内容(支持多行)、权重
启用开关逐条开启或关闭
删除 / 清空移除条目
导入 / 导出WindDict YAML(.wdict.yaml)格式,见导入与导出

触发方式

短语的编码就是你为它设定的缩写。在中文输入状态下键入该编码,短语内容会作为候选出现,按空格或数字键即可上屏。例如把编码 dz 绑定到你的地址,输入 dz 即可选出整段地址。

编码可以与方案的正常编码共存:短语候选与码表 / 拼音候选一同排序,按各自权重呈现。给短语选一个不易与自然词碰撞的编码(例如较长的字母组合),能让它更稳定地出现在你想要的位置。

临时拼音下不查快捷短语

进入临时拼音模式后不查询快捷短语层,输 zzbd 得到的是拼音候选而非字符组导航。但词库条目内嵌的 $ 语法在临拼下仍会正常展开与执行。

模板变量

在自定义短语中可使用以下变量,支持 $var${var} 两种语法,$$ 转义为 $。这是日期时间类的完整清单

变量说明变量说明
$Y四位年份$MM两位月份
$M月份(不补零)$DD两位日期
$D日期(不补零)$HH两位小时
$mm两位分钟$ss两位秒
$WC星期(中文,如「日」)$YC中文年份(如「二〇二六」)
$MC中文月份$DC中文日期
$ts秒级时间戳$tsms毫秒时间戳

农历 0.116 新增,取的是当天的农历,与快捷输入的农历候选同一套:

变量说明变量说明
$LMD农历月日(五月初五)$LM农历月(五月)
$LD农历日(初五)$LY干支年(丙午)
$LZ生肖(马)$LYN农历年数字(2026)
$LF传统节日(端午节)

例如短语 nl农历$LMD,打 nl 就得到今天的农历日期。

$LF 只在节日当天有值

非节日时含 $LF 的短语整条不出现(同下面「变量取不到值就整条丢弃」的规则)。所以 今天是$LF 这样的短语只会在春节、端午、中秋这些日子冒出来,平时不打扰。

干支和生肖按农历年算:元旦到春节之间仍属上一个生肖年。

此外还有两类非日期时间变量:

变量说明
$uuid随机 UUID(v4),带横杠小写;要别的格式用命令语法 {uuid("n")}
${APP_DIR} / ${USER_DATA} / ${LOCAL_DATA}内部目录变量,与命令直通车同源

变量名写错会让整条短语消失

遇到无法识别的变量名时,该短语条目会被整条丢弃,不会出现在候选里,也不会报错。若自定义短语突然不出候选,先检查变量名拼写。

变量名只吃 ASCII 字母,所以「价格 $5」这类 $ 后接非字母的写法会原样保留,不受影响。

需要比日期时间更复杂的动态内容(打开网址、调用命令行、读剪贴板、算式求值),用命令直通车的函数语法。

短语权重

添加 / 编辑对话框中的权重字段决定短语在同编码候选中的排序,默认 1000。在码表方案下,提高权重可让短语在同编码候选中靠前。

系统种子与设置页的默认权重不同

system.phrases.toml 里省略 weight 时取 1000;而通过设置页新增短语时,若未填写权重,后端兜底值是 1——远低于系统短语。新增短语时请显式填写权重,不要依赖默认值。

position:仅在权重相同时起作用

短语除权重外还有一个 position 字段,缺省为 0。它的作用范围非常窄,用错方向是常见误解:

精确语义

同一编码下的多条短语,先按权重降序排列;只有当权重完全相同时,才按 position 升序 决定先后。

权重不同时,position 完全不起作用——它是纯粹的同权 tie-break,不是优先级字段。

# 同为 code = "dz",权重相同 → 按 position 升序
dz  weight=1000  position=0   →  北京市朝阳区……      ← 排在前
dz  weight=1000  position=1   →  上海市浦东新区……

# 权重不同 → position 被忽略
dz  weight=1000  position=9   →  北京市朝阳区……      ← 仍排在前
dz  weight=500   position=0   →  上海市浦东新区……

还有三条边界需要知道:

  • 跨编码、跨来源无效 —— position 只在同一编码的短语内部生效。短语与码表候选、拼音候选之间的先后由权重等因素决定,position 不参与
  • 前缀导航列表不看 position —— 输入 zzco 这类前缀列举出的候选,按「权重降序、完整编码字母序升序」排列,position 无效
  • 与候选置顶的 position 不是一回事 —— 设置页候选调整里的置顶位置也叫 position,那是页内插入下标,语义完全不同,别混用

拼音方案下的置顶

拼音候选权重是百万级,单纯把短语权重调到几千不足以稳定压过常用拼音词。更可靠的做法是使用一个不易与自然词碰撞的精确编码(例如 4 字母的 cobd),让短语只在该精确编码下出现。

字符组

短语内容支持字符组语法,把一组字符打包在同一个编码下。例如:

$AA("标点", "、。·…")

该组内所有字符候选的权重都等于这条短语条目的权重值,组内字符的相对顺序由字符串顺序决定,与权重无关。zz 系列符号就是这样实现的。

字符组、数组、命令候选、模板短语等更进阶的短语形态详见命令直通车

短语不影响码表生僻字过滤

在码表方案的生僻字过滤路径下,短语永远保留、也不计入「同编码下是否有常用字」的判定。因此配置短语(例如 dz = 我的地址)不会副作用地改变同编码码表候选的过滤行为。

短语存储在哪里

所有短语——系统预置的和你自建的——统一存储在用户数据目录的 userdata.redb 中,同一张表里靠一个「是否系统短语」标记区分。

系统短语的种子是安装目录下的 data\system.phrases.toml(TOML 格式,不是 YAML)。启动时会比对种子文件的内容哈希,发现变化才同步进库。

%APPDATA%\WindInput\ 放一份同名文件可以整份替换这个种子(见同结构覆盖机制),适合成套定制系统短语。但它只决定「初始有哪些系统短语」——日常添加和修改短语一律通过设置工具完成,数据存在库里,不会回写这个文件。

同步遵循「归属先到先得」,用户数据永不被覆盖:

情形结果
种子里有、库里是系统条目更新权重与 position,保留你的启用开关
种子里有、库里已是用户条目整条跳过,不动
库里是系统条目但种子已删除从库中删除
用户新增的条目系统同步永不删除、永不改写

所以「覆盖系统短语」的正确做法有三种:关掉那条系统短语;用同编码但不同内容新增一条更高权重的用户短语;或直接编辑那条系统短语的权重(会就地改写系统条目本身)。

本页目录