notepad++ 保存时自动删行尾空格由 settings → preferences → misc. 中的 trim trailing spaces automatically 控制;勾选后全局强制删除所有行末空格(含制表符、全角空格),关闭后仍生效常见于便携模式读取错误配置、插件干扰或新版默认开启,需取消勾选→点save→重启验证。

Notepad++ 保存时自动删行尾空格是哪个设置?
这是 Settings → Preferences → MISC. 里的 Trim trailing spaces automatically 选项,勾选后每次保存文件都会无提示删除所有行末空格(包括制表符和全角空格)。它不区分语言、不看上下文,属于全局强制行为。
为什么关掉这个选项后还是被删了?
常见原因有两个:
- 你改的是当前配置文件(
config.xml),但 Notepad++ 正在以“便携模式”运行,实际读取的是程序目录下的config.xml,而非 %APPDATA% 下那个 - 插件干扰:比如
TextFX或某些旧版格式化插件自带保存钩子,会覆盖主设置 - 你用的是较新版本(v8.6+),该选项默认开启且可能被策略组/企业部署脚本重置
怎么确认并彻底禁用?
按顺序操作:
- 打开
Settings → Preferences → MISC.,取消勾选Trim trailing spaces automatically - 点击右下角
Save按钮(不是关闭窗口)——很多用户点了 × 就以为生效了 - 重启 Notepad++(必须,否则部分设置不热加载)
- 验证:新建文件,输入
hello␣␣(后面两个空格),按Ctrl+S,再按Ctrl+A → Ctrl+C粘贴到记事本里看是否还有空格
想局部保留行尾空格怎么办?
Notepad++ 原生不支持“仅对某些文件类型禁用”,但可绕过:
- 用正则替换临时补救:
Search → Replace → Find what: \s+$ → Replace with: (留空)→ Search Mode: Regular expression,只在需要时手动执行 - 换用
AutoHotkey脚本拦截保存动作,或改用 VS Code(支持 per-language"files.trimTrailingWhitespace": false) - 如果只是写 Markdown 或 Makefile,行尾空格有语义,建议直接关闭全局 trim,别依赖“偶尔记得手动不删”
真正容易被忽略的是:这个设置在多标签页场景下,只要任意一个文档触发保存,就会统一应用 trim 规则——哪怕你刚在另一个标签里特意加了两个空格来对齐注释。







