前言¶
在 DeepSeek Harness (DSH) 的網頁編輯器中編寫數學公式時,手動輸入 LaTeX 代碼既繁瑣又容易出錯。dsh-math-snippets 插件通過引入觸發詞機制,實現了類似 LaTeX Suite 的代碼片段展開功能,能夠顯著提升公式輸入效率。
插件概述¶
該插件由用戶 huanglianqi 維護,是一個基於 MIT 許可證的開源工具。它通過將常用的數學符號映射爲簡短的觸發詞,在用戶輸入特定字符組合後,自動將其替換爲完整的 LaTeX 模板,並將光標定位到需要填寫的佔位符位置。
核心功能¶
1. 觸發詞展開¶
插件內置了一個包含 142 個標籤的觸發詞表,其中 138 個默認爲自動展開,4 個(如 \sum, \prod)需要配合 Tab 鍵使用。觸發詞的匹配規則與 Obsidian LaTeX Suite 保持一致,方便習慣該工具的用戶遷移。
2. Tab 鍵導航¶
當觸發詞展開後,光標會自動進入第一個佔位符。按 Tab 鍵可以依次跳轉到後續的佔位符(例如 $1, $2)。這允許用戶快速構建複雜的嵌套公式結構。
3. 外部觸發詞¶
除了數學符號內部,插件還支持在普通文本中觸發數學塊的插入。這使得用戶可以快速在段落中插入數學公式或獨立的顯示數學塊。
4. 可編輯的觸發詞表¶
插件的觸發詞表由插件在首次啓動時寫入到 ~/.dsh/math-snippets.json,並可通過編輯該文件來自定義觸發詞的行爲。
安裝與啓用¶
使用官方插件安裝命令:
dsh plugin --profile <profile> add dsh-math-snippets
安裝完成後,需要重啓 Harness(因爲配置列表在啓動時讀取),然後刷新網頁編輯器頁面即可生效。
使用示例¶
以下是常見觸發詞及其展開效果:
$// → $\frac{}{}$
$sum → $\sum_{i=1}^{n} $
$ff<Tab> → $\frac{}{}$
mk → $$
dm → $$\n\n$$
在數學符號內部,輸入觸發詞後通常無需按 Tab 即可自動展開:
$@a → $\alpha$
$sr → $^{2}$
配置與自定義¶
在 ~/.dsh/math-snippets.json 文件中,可以添加或覆蓋內置的觸發詞。該文件是一個 JSON 對象,每個條目包含以下字段:
body: 展開後的 LaTeX 內容。$0,$1等表示佔位符。auto: 是否自動展開(默認爲 true)。open: 是否允許在數學符號外觸發。word: 是否要求觸發詞後必須是非單詞字符(防止誤觸)。desc: 備註說明。
自定義示例:
{
"snippets": {
"capm": { "body": "$E[R_i]=R_f+\\beta_i(E[R_m]-R_f)$", "auto": true },
"npv": { "body": "\\mathrm{NPV}=\\sum_{t=0}^{n}\\frac{CF_t}{(1+r)^t}" },
"par": { "body": "\\frac{\\partial $0}{\\partial $1}", "auto": true }
}
}
限制與注意事項¶
- 無實時預覽:插件在輸入時不會隱藏或渲染公式,也不會自動調整括號大小。
- 佔位符文本:
${1:\infty}等佔位符中的默認文本不會被自動選中,這是 Shell 環境的限制。 - 觸發詞規則:
* 純字母觸發詞(如ff)匹配的是完整的單詞(例如輸入xff不會觸發ff)。
* 非字母觸發詞(如//,_)匹配的是精確字符。
* LaTeX 命令本身(如\sum)永遠不會被識別爲觸發詞。 - Tab 行爲:只有當匹配到有效的觸發詞時,Tab 纔會被消耗;否則 Tab 保留其默認功能。
生態背景¶
DeepSeek Harness 的核心設計理念是“一切皆插件”。本插件由社區維護,其目錄與 GitHub 倉庫地址如下:
- 目錄: https://www.skillhub.cn/plugins/huanglianqi/dsh-math-snippets
- 倉庫: https://github.com/huanglianqi/dsh-math-snippets