FillIn 模板变量
FillIn 是 CodeExpander 的「展开时弹窗填空」能力:在片段中插入 FillIn 变量(如 %filltext%、%fillarea%),触发展开时先弹出表单填写,再替换为最终内容。适合提示词、邮件模板、带参数的代码块。
单行 · 多行 · 下拉 · 可选 · 条件 · 日期 · 语法一览
展开含 FillIn 的片段时先弹出此窗。⌘/Ctrl+Enter 确认后才插入。
单行填空
客服模板里要留客户姓名:展开时弹出一行,填「李四」,正文里所有同名空位一起换成李四。
%filltext%:一行输入。同 name 只填一次。⌘/Ctrl+Enter 确认。
编辑器工具栏 FillIn → 单行。给这个空起个名字(比如「姓名」)。同名空位只填一次。展开后填那一行,⌘/Ctrl+Enter 确认。
Hello, %filltext&name=username&default=World&width=150%!多行填空
退货说明要写三行原因:展开时出现一块多行框,填完再插进邮件。
%fillarea%:多行。default 可含字面 %。
编辑器 FillIn → 多行。默认值里可以直接写百分号(比如增值税 6%)。
%fillarea&name=description&default="请输入描述"&width=300&rows=5%下拉菜单
工单模板里优先级只能是高 / 中 / 低:展开时出现下拉,选一个再插入。
%fillmenu%:预定义 opt。可带复选。
编辑器 FillIn → 下拉。至少要有一个选项。选项特别多、还要整段话跟着变,用 条件分支。
优先级:%fillmenu&name=priority&default=中&opt=高&opt=中&opt=低&width=80%可选与注释
有的邮件只有加急时才加「请优先处理」:展开时勾一下,这段才进正文。不勾就当没写。
%fillcheck% 勾选才输出;%fillnote% 只在窗里可见。
复选框 — 勾选才把默认文字插进去。注释 只在填写窗里给自己看提醒,发出去的正文里没有。编辑器 FillIn → 可选 / 注释。
%fillcheck&name=urgent&default=[紧急]&isCheck=0% 请处理此事项条件分支
客服既要退款话术也要换货话术:做成一条片段,展开时选「退款」或「换货」,只发出当前这一段。
%fillswitch% / %fillcase%:Branch i/n 只输出当前支。
编辑器 FillIn → 条件。填写窗用 分支 切换。主窗口「+ → 模板示例 → 客服话术」里的 /cs 是完整例子。
%fillswitch&name=场景%
%fillcase&opt=退款%
退款已提交,订单号 %filltext&name=订单号&default=%。
%fillcase&opt=换货%
请寄回仓库,备注订单号 %filltext&name=订单号&default=%。
%fillend%日期与时间
合同里要写截止日期:展开时弹出日历,点一天即可。如果永远是「今天」,用自动日期,不会再弹窗。
%filldatepicker% 点选日历;%date% 不弹窗、按格式插今天。
点选日历:
截止日期 %filldatepicker&name=due&format=LL&lang=zh-cn%今天或往后几天(不弹日历):
今天是 %date&format=LL&lang=zh-cn%
明天是 %date&format=LL&lang=zh-cn&calc=1%格式见下方 日期变量。
模板变量类型
1. %filltext% - 单行文本输入
格式:
%filltext&name=变量名&default=默认值&width=宽度%参数:
| 参数 | 必填 | 说明 |
|---|---|---|
name | ✅ | 变量唯一标识 |
default | ❌ | 默认值 |
width | ❌ | 输入框宽度 (px),默认 100 |
case | ❌ | 大小写转换:camel/pascal/snake/kebab/upper/lower |
示例:
Hello, %filltext&name=username&default=World&width=150%!变量格式化示例:
// 输入 "hello world" 后,输出按 case 参数转换:
小驼峰:%filltext&name=var&case=camel% → helloWorld
大驼峰:%filltext&name=var&case=pascal% → HelloWorld
蛇形: %filltext&name=var&case=snake% → hello_world
横杠: %filltext&name=var&case=kebab% → hello-world
全大写:%filltext&name=var&case=upper% → HELLO WORLD
全小写:%filltext&name=var&case=lower% → hello world2. %fillarea% - 多行文本输入
格式:
%fillarea&name=变量名&default=默认值&width=宽度&rows=行数%参数:name 必填;default、width、rows(默认 2)可选。
示例:
描述:
%fillarea&name=description&default="请输入描述"&width=300&rows=5%default 里可以直接写百分号(如 含 6% 增值税)。& 仍须写成 %26;插入面板会自动编码。也可以手写 %25 表示 %。
3. %fillnote% - 注释 (不输出)
格式:%fillnote&name=变量名&default=注释内容&width=宽度%
说明:注释变量仅在编辑时显示,最终输出时会被移除。
4. %fillcheck% - 复选框
格式:
%fillcheck&name=变量名&default=选中时的值&isCheck=0或1&width=宽度%示例:
%fillcheck&name=urgent&default=[紧急]&isCheck=0% 请处理此事项- 选中时:
[紧急] 请处理此事项 - 未选中时:
请处理此事项
5. %fillmenu% - 下拉菜单
格式:
%fillmenu&name=变量名&default=默认选项&opt=选项1&opt=选项2&opt=选项3&isCheck=0或1&info=前缀文本&width=宽度%参数:name、opt(可多个)必填;default、isCheck、info、width 可选。
示例:
优先级:%fillmenu&name=priority&default=中&opt=高&opt=中&opt=低&width=80%6. %fillswitch% — 条件分支
展开时 FillIn 窗里用 Branch i/n 下拉切换(和 TextExpander 一样:当前分支的字段跟着显隐),只插入选中段。编辑器里是两端标记,在中间像普通片段一样打字;代码编辑器一次只显示一支,用前指示器下拉切换分支。不要把 %fillcase 当成独立变量。
%fillswitch&name=场景%
%fillcase&opt=退款%
退款已提交,1~3 个工作日到账。订单号 %filltext&name=订单号&default=%。
%fillcase&opt=换货%
请寄回仓库,备注订单号 %filltext&name=订单号&default=%。
%fillend%主窗「+ → 模板示例 → 客服话术」里的 /cs 是完整例子。
7. %filldatepicker% — 日历点选
格式:%filldatepicker&name=变量名&format=ll&lang=zh-cn&width=160%
展开时在 FillIn 窗弹出日历,由用户点选。不是 %date%(%date% 总是插入今天,或今天加 calc/expr)。
参数:name 必填;format(dayjs 格式,默认 ll)、lang、width 可选。
截止日期 %filldatepicker&name=due&format=LL&lang=zh-cn%日期变量 %date%
格式:
%date&format=格式&lang=语言&calc=偏移天数%常用格式:
| 格式 | 示例输出 |
|---|---|
YYYY-MM-DD | 2025-12-31 |
YY-M-D | 25-12-31 |
HH:mm:ss | 14:30:00 |
L / LL / LLL / LLLL | 本地化日期时间 |
示例:
今天是 %date&format=LL&lang=zh-cn%
明天是 %date&format=LL&lang=zh-cn&calc=1%
下周四:%date&format=YYYY-MM-DD&lang=zh-cn&expr=next%20Thursday%
三个工作日后:%date&format=YYYY-MM-DD&lang=zh-cn&expr=%2B3bd%expr 与 calc 不要同时用。expr 支持 today / tomorrow / yesterday / next Monday / last Friday / +3d / -2w / +1m(月) / +1h / +1min(分钟,必须写 min,+1m 是月) / +1s / +1y+1m / +3bd(工作日)。空格和 + 要写成 %20、%2B。
键盘快捷键 %clavier%
格式:%clavier&key=按键&modifier=修饰键%
预设:%clavier&key=Enter%、%clavier&key=Escape%、%clavier&key=Tab%
自定义:%clavier&key=V&modifier=command%(Cmd+V)
功能变量
| 变量 | 说明 |
|---|---|
%c% | 光标位置 - 展开后光标停留在此处。支持多个 %c% 实现多光标 Tabstop 顺序跳转 |
%cv% | 剪贴板内容 - 插入当前剪贴板文本(支持格式化参数,见下) |
%s:abbr% | 嵌套片段 - 插入指定缩写的片段内容 |
示例:
function %filltext&name=funcName&default=myFunction%() {
%c%
}多光标 Tabstop(多个 %c%)
片段中可插入多个 %c%,展开后光标位于第一个 %c% 位置,按 Tab(或 设置 中配置的 Tabstop 跳转键)顺序跳转到下一个光标位置。
示例:
SELECT %c% FROM %c% WHERE %c%;展开后:
- 光标位于
SELECT之后 - 按 Tab 跳转到
FROM之后 - 按 Tab 跳转到
WHERE之后
适合需要依次填写多个占位符的代码模板场景。
%cv% 格式化参数
%cv% 支持可选参数,将剪贴板内容格式化后插入,特别适合 AI 提示词场景:
| 参数 | 示例语法 | 效果 |
|---|---|---|
xml=TAG | %cv&xml=error% | 包裹为 <error>内容</error> |
md=LANG | %cv&md=python% | 包裹为 Markdown 代码块 ```python\n内容\n``` |
md= | %cv&md=% | 包裹为无语言标记代码块 ```\n内容\n``` |
truncate=N | %cv&truncate=2000% | 截断到 N 个字符(超出部分加 ...) |
trim=1 | %cv&trim=1% | 去除首尾空白 |
参数可组合使用,处理顺序:trim → truncate → xml/md(先处理内容,再包裹格式)。xml 与 md 同时出现时,xml 优先。
AI 场景示例:
# 帮我调试这个错误(先复制报错再触发缩写)
以下是错误信息:
%cv&xml=error&truncate=3000%
请帮我找出根本原因。# 代码审查(先复制代码再触发缩写)
请审查以下代码:
%cv&md=python&trim=1&truncate=4000%FillIn 窗口交互
触发流程
用户输入缩写 → 检测到 FillIn 变量 → 弹出表单窗口 → 用户填写 → 替换变量 → 输出结果快捷键
| 快捷键 | 作用 |
|---|---|
Cmd/Ctrl + Enter | 确认并插入 |
Enter / Tab | 跳转下一个输入框 |
支持的内容类型
| 类型 | 说明 |
|---|---|
plain | 纯文本 |
rich | 富文本 (HTML) |
shell | Shell 脚本 (执行后输出结果) |
js | JavaScript (执行后输出结果) |
python | Python (执行后输出结果) |
applescript | AppleScript (macOS) |
powershell | PowerShell (Windows) |