notepad++ 无原生模板功能,需手动安装 snippet.dll 插件并配置 xml 片段文件于 %appdata%\notepad++\plugins\config\snippet\ 路径,编码为 utf-8 无 bom,且触发失败主因是语言识别与 scope 不匹配、tab 被占用或编码错误。

Notepad++ 本身不提供“保存为模板”的原生功能,所谓模板,实际是靠 Snippet 插件 + 手动组织 XML 片段文件实现的;直接另存为 .txt 或 .tpl 文件,下次打开只是普通文本,不会自动注入、无法触发、也不带作用域控制。
Snippet 插件必须手动安装(7.9+ 版本不自带)
别在插件管理器里搜 “Snippet”——它压根不在列表中。你得自己下载匹配架构的 Snippet.dll:
- 去 npp-snippet 官方 Release 页面 下载对应 Notepad++ 架构(x86/x64)和版本的 DLL
- 放进
%PROGRAMFILES%\Notepad++\plugins\(非便携版)或plugins\目录(便携版) - 重启 Notepad++,菜单栏出现
Plugins → Snippet才算成功 - 若没反应,检查 Windows 事件查看器中是否有
LoadLibrary failed类错误,大概率是 x64 Notepad++ 装了 x86 插件
代码片段文件必须放对路径且格式严格
片段不是随便建个 .xml 就能用。Notepad++ 的 Snippet 插件只读取固定路径下的特定结构 XML:
- 存放路径必须是:
%APPDATA%\Notepad++\plugins\Config\Snippet\(注意是Config\Snippet\,不是plugins\Snippet\) - 文件编码必须是 UTF-8 无 BOM(用记事本另存为时选错会直接失效)
- 每个片段以
<snippet></snippet>开头、结尾,且必须含<content></content>和<tabtrigger></tabtrigger> - 示例(保存为
react-component.xml):
<snippet><content>import React from 'react';
const <strong>$1</strong> = () => {
return (
<div></div>
);
};
export default <strong>$1</strong>;</content><tabtrigger>rc</tabtrigger><scope>source.js</scope></snippet>
是光标初始位置,支持多个(, <p><code>$1 是光标初始位置,支持多个($2, $0 表示最终退出点),但不能写成 ${1} 或 $$1 —— 插件只认单美元符加数字。
或 $ —— 插件只认单美元符加数字。为什么按 Tab 没反应?关键看语言识别和 scope 匹配
触发失败几乎都卡在这三处:
- 当前文档右下角状态栏显示的是
Normal text或Plain text,不是JavaScript或HTML—— 先用菜单Language → J → JavaScript手动设对语言 -
<scope></scope>值写错了:比如写了source.js,但 Notepad++ 实际识别为js(常见于 .js 文件未关联语言),这时要么改成js,要么删掉整行<scope></scope> - Tab 键被其他插件劫持:比如 AutoCompletion 或 Python Script 启用了
Tab补全,临时禁用它们再试
不想装插件?用宏 + 快捷键模拟模板更稳定
公司电脑禁装 DLL、或插件频繁崩溃时,Macro 是更轻量可靠的替代方案:
- 先写出完整模板(如一个 Vue 3 setup script 结构),全选 →
Macro → Start Recording - 确认右下角状态栏稳定显示
REC(至少 1 秒),再执行Edit → Paste - 点
Macro → Stop Recording(⚠️别按Ctrl+Shift+P,那是播放) - 保存宏后,进
Macro → Modify Shortcut/Delete Macro,分配快捷键并务必勾选Enable macro at startup
真正容易被忽略的是:宏默认不随 Notepad++ 启动加载,漏掉那个勾选,重启后就彻底消失——连菜单里都找不到它。











