Notepad++ 通过启用 Document Monitor 实现外部修改自动重载或提示,但仅监控已保存文件且受系统权限、存储位置等限制;需勾选“Enable”及“Auto-reload…”选项,失效时可借助 Python Script 插件轮询实现弹窗提醒。

Notepad++ 默认不会主动弹窗提醒你外部修改了当前打开的文件,但确实支持“检测到文件被外部更改后自动重载”——关键在于启用 Document Monitor 功能,并理解它的触发条件和限制。
如何开启 Document Monitor(文件变更监控)
这是 Notepad++ 唯一原生支持的“外部修改感知”机制,不是弹窗提醒,而是静默重载或提示你是否重载:
- 菜单栏点击 设置 → 首选项 → MISC.(杂项)
- 勾选 “Document Monitor”(文档监视器)
- 下方两个选项按需选择:
– “Enable”:启用监控(必须勾选)
– “Auto-reload if file is modified by another program”:勾选后,外部修改会自动重载;不勾则弹出提示框让你选“Reload / Ignore / Cancel”
为什么改了文件却没反应?常见失效原因
Document Monitor 不是万能的,以下情况会导致它完全不触发:
-
Document Monitor仅监控“已保存的文件”,新建未保存的标签页(显示为new 1)不会被监视 - 文件被修改后**未真正写入磁盘**(例如某些编辑器用临时文件+原子重命名方式保存),Notepad++ 可能因 inotify/fsevents 机制差异错过事件
- Windows 上若文件位于网络驱动器(如
Z:\)、OneDrive/Google Drive 同步目录,或启用了缩略图缓存等 Shell 扩展,监控可能延迟或失效 - Notepad++ 以管理员权限运行,而修改文件的程序没用管理员权限(或反过来),UAC 隔离可能导致文件句柄不可见
替代方案:用插件实现真正的“弹窗提醒”
原生功能只支持重载或简单确认,如需视觉强提醒(比如闪烁标题栏、弹 Toast),可安装插件:
- 插件名:
Explorer(旧版)或更可靠的Python Script+ 自定义脚本 - 推荐做法:安装
Python Script插件后,添加一个后台轮询脚本,用os.path.getmtime()检查文件时间戳变化,再调用notepad.messageBox() - 注意:
Python Script插件本身不自带轮询,需手动写脚本并设为“在启动时运行”或绑定到定时器 - 风险:频繁轮询(如 2000 毫秒
Linux/macOS 下行为差异与注意事项
Notepad++ 是 Windows 原生应用,Linux/macOS 用户通常通过 Wine 运行,此时 Document Monitor 基本不可用:
- Wine 对 inotify 的模拟不完整,
Document Monitor大概率灰显或静默失败 - 不要依赖界面里的勾选项——即使显示已勾选,在 Wine 中也大概率不工作
- 真要跨平台可靠监听,应换用 VS Code、Sublime Text 等原生支持
chokidar或FSEvents的编辑器
Document Monitor 的逻辑很朴素:它靠操作系统通知(Windows 的 ReadDirectoryChangesW)监听文件变更,一旦底层失联,上层就彻底失明。很多人反复点“重新加载”却忽略“根本没收到通知”,这才是最常卡住的地方。

















