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) |