Notepad++ v7.9+仅扫描plugins下同名子目录,子目录名须与DLL主文件名逐字符一致(含大小写),否则完全不加载且无日志;便携版plugins必须与notepad++.exe同级,安装版走%PROGRAMFILES%\Notepad++\plugins。

插件目录结构被改乱后Notepad++直接不加载任何插件
Notepad++ v7.9+ 默认只扫描 plugins 目录下的**子目录**,且每个子目录名必须与主 DLL 文件名(不含 .dll)逐字符一致、区分大小写。一旦把 NppFTP.dll 直接丢进 plugins\ 根目录,或放进 plugins\nppftp\(小写),它就彻底无视——连日志都不记,更不会报错。
常见破坏性操作包括:用资源管理器批量重命名子目录(自动转小写)、解压 ZIP 时覆盖原有结构、用同步工具(如 OneDrive)拉取他人配置导致路径混杂。
- 便携版必须确保
plugins文件夹与notepad++.exe同级;安装版才走%PROGRAMFILES%\Notepad++\plugins - 右键
notepad++.exe→ 属性 → 详细信息 → 看「原始文件名」是否含portable字样,来确认类型 - 企业定制版可能禁用自动发现逻辑,需检查
notepad++.ini中[Settings]段是否有pluginsDir=手动路径
怎么锁定 plugins 目录结构不被误删/重命名
Windows 本身不提供“目录结构只读”机制,但可通过权限控制 + 命名规范双保险降低风险:
- 对
plugins文件夹右键 → 属性 → 安全 → 编辑 → 选中当前用户 → 去掉「删除」和「删除子文件夹及文件」勾选(保留「读取和执行」「列出文件夹内容」「读取」) - 所有插件子目录名统一用 PascalCase(如
JSONViewer、HexEditor),避免空格、点号、下划线;复制前先用dir /x确认短文件名未触发意外截断 - 禁用资源管理器的“文件扩展名”隐藏功能,防止误删
.dll后缀导致子目录名与 DLL 名不匹配
插件目录被改乱后如何快速恢复
别手动一个个核对——用命令行批量校验最可靠:
cd /d "X:\path\to\notepad++" for /d %i in (plugins\*) do @if exist "%i\%~nxi.dll" (echo OK: %i) else (echo MISMATCH: %i)
输出里带 MISMATCH 的就是名字不匹配的目录,直接重命名即可。注意:%~nxi 是 CMD 内置变量,表示目录名本身(不含路径),所以 plugins\NppFTP\ 下必须有 NppFTP.dll,不能是 nppftp.dll 或 NppFTP_x64.dll。
- 若插件依赖 VC++ 运行库(如很多 64 位插件需要
vcruntime140.dll),光修复目录结构还不够,得一并放入对应子目录 - PluginAdmin.dll 和 PluginManager.dll 不可共存,后者在 v8.0+ 已废弃,混放会导致安全模式都启动失败
- 每次修改后务必用 Shift 启动验证:按住 Shift 双击图标,能进干净界面再放开,说明插件层已无硬性阻断
为什么备份 plugins 目录比备份 notepad++.exe 更重要
notepad++.exe 丢了重装就行,但 plugins 目录一旦损坏,往往意味着:自定义快捷键丢失、Local History 插件记录清零、AutoSave 配置失效、甚至某些插件(如 NppFTP)的服务器连接凭据永久消失——这些数据不会随 Notepad++ 重装恢复。
- 建议每周用
robocopy备份一次:robocopy "plugins" "plugins.bak" /E /XD "plugins.bak" - 不要用压缩包长期存档
plugins,解压时容易忽略大小写或权限继承问题 - 如果用了 Git 管理配置,
plugins目录应设为git update-index --skip-worktree,避免误提交二进制 DLL
最常被忽略的一点:插件目录结构不是“设了只读就万事大吉”,而是每次新增插件、升级版本、切换便携/安装版时,都得重新校验一遍子目录命名与 DLL 主文件名的字符级一致性——差一个大写字母,整个插件就等于不存在。


















