Notepad++新建文档默认不加扩展名,保存时需手动输入;Windows隐藏扩展名易致误存为.xxx.txt,应开启显示扩展名并正确命名;默认语言宜设Normal text,通过语言格式设置绑定扩展名;UTF-8编码与LF换行需分别设置并重启生效。

Notepad++ 新建文档默认保存为 .txt 或无扩展名,不是因为你没设置对,而是它根本不会自动加后缀——新建 → 保存 这个动作本身不带任何扩展名逻辑,必须手动输入,或靠「默认语言 + 扩展名映射」间接引导。
为什么新建文件一保存就变 xxx.txt
这是 Windows 资源管理器的“隐藏已知文件扩展名”惹的祸。Notepad++ 的保存对话框里你输 HelloWorld.java,系统却把它当成 HelloWorld.java.txt(因为 .java 被识别为“未知类型”,自动补 .txt)。结果右下角状态栏还是显示 Normal text,语法也不高亮。
- 先打开「文件资源管理器 → 查看 → 勾选“文件扩展名”」,确认你输的确实是
HelloWorld.java,不是HelloWorld.java.txt - 如果已错存成
.txt,删掉 .txt 再重存一次;别用“重命名”,那只是改名,不改实际编码和语言绑定 - Notepad++ 不会拦截或修正你输错的扩展名,它只认你敲进去的字符串
设置 → 首选项 → 新建 → 默认语言 到底该选什么
设成 Java 或 Python 看起来省事,但副作用明显:空文件一建就套上缩进规则、括号匹配、甚至误触发代码补全,写临时笔记反而卡顿。真正稳妥的做法是保持 Normal text,再靠扩展名映射兜底。
- 菜单栏 → 设置 → 首选项 → 新建 → 默认语言 → 选
Normal text - 接着去 设置 → 语言格式设置 → 滚到底部点「定义你的语言」→ 在
Python行右侧输入框填.py,回车生效 - 多个扩展名用空格隔开,比如
.env .env.local;别加引号、逗号,也别漏掉开头的点 - 这个映射只在你保存为对应后缀时起作用,新建未保存的空文档仍显示
Normal text
保存时自动转成目标换行符和编码,两个开关要分开开
很多人设了 UTF-8(无 BOM),但协作时 Git 还是报 CRLF 修改,就是因为只开了编码,没开「保存时自动转换行尾」。这两个是独立开关,缺一不可。
- 编码设置路径:
设置 → 首选项 → 新建文档 → 编码 → UTF-8(无 BOM) - 行尾转换路径:
设置 → 首选项 → 新建文档 → Save → 勾选「Save as」→ 选 UNIX/OSX (LF) - 注意:
Save as开关只在你按Ctrl+S或菜单「文件 → 保存」时触发,粘贴、插入、宏操作产生的换行符不受影响 - 状态栏右下角显示的是当前文件磁盘内容的真实格式,不是你的设置是否启用——哪怕开了自动转换,只要还没保存过,它依然显示原始格式
最常被忽略的一点:配置改完不重启 Notepad++ 是无效的。它会缓存上次会话(包括每个标签页的语言、编码、折叠状态),导致你看到的「新建」行为其实是旧会话残留。务必彻底退出进程(任务管理器里确认 notepad++.exe 已结束),再重新启动,用 Ctrl+N 测试才准。便携版用户还要留意,真实配置在 notepad++.exe 同目录下的 config.xml,界面修改有时不同步。


















