Notepad++ 不能直接清理临时文件,只能通过 NppExec 插件调用系统命令实现可控清理。需用 $(SYS.TEMP) 变量、双引号包裹路径、避免 exit 结束控制台,且无法真正自动化,人工判断与兜底必不可少。
Notepad++ 本身不运行代码,也不执行“清理临时文件”这类系统级操作——所谓“运行代码自动清理”,本质是混淆了编辑器和脚本执行环境的边界。真要清理临时文件,得靠外部命令(如 del、rm)或批处理脚本,Notepad++ 只能作为编写/触发工具,不能越权代劳。
很多人误以为装个插件(比如 PythonScript)就能让 Notepad++ “直接删临时文件”,结果要么权限失败,要么路径写错,要么删掉自己正在编辑的文件。根本原因:Notepad++ 是 GUI 文本编辑器,没有内置 shell 环境,所有文件操作必须委托给系统命令行。
PythonScript 插件调用 os.remove() 前,必须确保目标路径可读、有权限、且不是 Notepad++ 当前打开的文件(否则 Windows 会报“被占用”)cmd /c del /q "%TEMP%*.tmp" 这类命令更可靠,但需通过“运行”菜单(Alt + F5)或宏调用,不能自动触发pause 或错误检查,否则失败无声无息真正能接近“自动清理”的路径,只有 NppExec 插件配合自定义命令。它不执行 Python,而是把字符串当 CMD 命令发给系统,可控性强、失败反馈明确。
F6 打开 NppExec 控制台,输入:cmd /c "for %i in (%TEMP%*.log %TEMP%*.tmp) do @del /f /q "%i""
clean_temp),再绑定到快捷键(如 Ctrl+Shift+T)%TEMP% 在 NppExec 中需写成 $(SYS.TEMP),否则变量不展开;含空格路径要用双引号包裹exit,否则控制台会关闭,看不到执行结果宏(Ctrl+Shift+R)只能录制 Notepad++ 内部动作(如菜单点击、文本操作),无法执行外部命令。你录下“点击运行→输入 cmd 命令→回车”,实际回放时只会把那串文字粘贴进当前文档——宏不解析、不执行,纯文本回放。
Alt+F5 → cmd /c del ... → 回车,回放时只是把 cmd /c del ... 插入光标位置file.reload(NppExec 自带指令),不能只靠宏真正可靠的清理,从来不在编辑器里完成。Notepad++ 的角色只是帮你写对命令、快速触发、看清输出——路径是否正确、权限是否足够、是否误删,这些判断和兜底逻辑,必须由人来定,没法交给插件自动扛。