notepad++保存时自动删行尾空格由settings→preferences→misc.中的trim trailing spaces automatically控制;需取消勾选、点击右下角save按钮并重启软件才能生效,否则便携模式、插件或企业策略可能覆盖设置。

Notepad++保存时自动删行尾空格由哪个设置控制
就是Trim trailing spaces automatically这个开关,位置在Settings → Preferences → MISC.。它一勾选,所有文件保存时都会无差别删掉每行末的 和\t,不看语言、不问语义、不给提示。
常见误操作是:打开窗口→取消勾选→直接点×关掉。结果Save按钮没点,设置根本没写入;或者点了但没重启,尤其便携版或企业部署环境下,旧配置还在内存里跑。
- 必须取消勾选
Trim trailing spaces automatically - 必须点右下角
Save按钮(不是关闭窗口) - 必须重启Notepad++才能生效
为什么关了设置还是被删了
不是设置没生效,而是别的东西在“偷偷干活”。最常踩的坑是:
- 你改的是
%APPDATA%\Notepad++\config.xml,但软件正以便携模式运行,实际读取的是程序目录下的config.xml - 插件劫持了保存流程——比如旧版
TextFX或某些格式化插件自带onSave钩子,优先级高于主设置 - v8.6+ 版本企业策略可能通过注册表强制重置该选项,每次启动都把它打回勾选状态
验证方法:命令行运行notepad++.exe -noPlugin,再测试保存。如果这时不删了,问题就在插件。
想局部保留行尾空格怎么办
Notepad++原生不支持 per-file 或 per-language 关闭Trim trailing spaces automatically。所谓“Markdown 两个空格换行”“Makefile 行尾续行”,在它眼里全是待清除垃圾。
可行方案只有两个:
- 彻底关闭全局
Trim trailing spaces automatically,需要时手动执行编辑 → 行操作 → 删除尾部空白——只在当前文档触发,可控 - 换用 VS Code,配
"files.trimTrailingWhitespace": false+"[markdown]": {"files.trimTrailingWhitespace": true}这类细粒度规则
别信“我写 Markdown 时小心点不加空格”——多标签页下,任意一个文档保存都会触发全局 trim,你在另一个 tab 里为对齐注释加的两个空格,下一秒就被吃掉。
真正容易被忽略的细节
这个设置影响的是“所有打开的文档”,不是“当前活动文档”。而且它不区分文件类型、不感知上下文、不检查 Git 提交前是否已格式化——只要 Ctrl+S,就立刻执行,不可撤回。
如果你在团队协作中依赖它来“规范代码提交格式”,得先确认所有人关掉了这个选项,否则有人开、有人关,diff 里全是空格增删,CI 流水线会反复报格式错误。











