Notepad++需通过宏+“运行命令”(F5)触发$(NAME_PART)变量展开才能插入文件名,因该变量仅在F5对话框中解析,编辑区输入仅为纯文本;宏录制流程含新建临时文档、F5执行cmd命令写入剪贴板、粘贴回原文件。

Notepad++ 本身不支持直接粘贴当前文件名,但用宏 + $(NAME_PART) 变量能稳定实现一键插入,关键在于必须走「运行命令」触发变量展开,再写回编辑区。
为什么不能直接在编辑区输入 $(NAME_PART)?
因为 $(NAME_PART) 这类变量只在「运行」对话框(Run → Run… 或快捷键 F5)里被解析,你在文档里打字写进去,它就是纯字符串,不会变成文件名。你如果试过复制粘贴进编辑区却没变化,就是卡在这一步。
用宏录制实现一键插入文件名(兼容所有版本)
核心思路是:让 Notepad++ 自己调起命令行,把变量展开成真实文本,再自动塞进剪贴板或临时文档里——宏是唯一能把这个流程串起来的方式。
- 点击
宏 → 开始录制 - 按
Ctrl + N新建一个临时文档(避免污染原文件) - 按
F5打开运行对话框,输入:cmd /c echo $(NAME_PART) | clip,点「运行」(这句会把文件名直接写进系统剪贴板) - 切换回原文件,光标定位到想插入的位置,按
Ctrl + V - 点击
宏 → 停止录制,再宏 → 保存当前录制宏,起名如Insert filename
⚠️ 注意:$(NAME_PART) 不含后缀;要带后缀用 $(FILE_NAME);完整路径用 $(FULL_CURRENT_PATH) —— 它们全都要放在 F5 对话框里才生效。
常见错误和绕不开的坑
你按快捷键后弹出黑窗口但没插入内容?说明宏里漏掉了 | clip 或用了 & PAUSE 却没手动复制;你插入的是 $(NAME_PART) 字面量?说明你试图在编辑区直接输入变量,而不是通过 F5 触发。
- 别在宏里写
$(NAME_PART)当普通文本——宏不解析变量,只有F5会 -
cmd /c echo $(NAME_PART) | clip要求系统有clip.exe(Win7+ 默认自带,XP 需另装) - 未保存文件(如
new 1)的$(NAME_PART)是空字符串,此时插入结果为空——这是正常行为,不是宏坏了
真正难的不是录宏,而是理解变量只在特定上下文生效;一旦搞错触发路径,就永远插不出文件名。


















