Notepad++ 的安装版配置在 %APPDATA%\Notepad++,便携版配置在程序所在目录(靠一个 0 字节的 doLocalConf.xml 文件来标识)。知道这一点,重装系统、换电脑、把环境搬到 U 盘,都只是复制粘贴的事——不知道的话,你攒了三年的主题、快捷键、自定义语言、几十个插件配置,会在一次重装里全部归零。
配置这东西的特点是:它在的时候你完全感觉不到,它没的时候你每操作一下都会想起它。 字体不是你那个字体了,快捷键按下去没反应,深色主题不见了,录了半年的宏没了。重建一遍要花的时间,通常是备份的几十倍。
这篇把三件事讲清楚:配置存在哪、每个文件各管什么、以及升级和迁移时哪些该动哪些不该动。第三章有一张从 Notepad++ 官方用户手册逐项翻译整理的处理策略对照表,那部分是本篇最硬的内容,也是中文互联网上几乎没人系统整理过的一块。
无论你用的是安装版还是便携版,Notepad++ 中文版 的配置逻辑完全一致,区别只在配置文件存放在哪里,这正是第一章要讲的事。
读完你应该能独立完成:把当前配置完整备份下来、把环境原样搬到一台新电脑、以及在升级 Notepad++ 时不丢任何自定义设置。
关键要点
- 安装版配置在
%APPDATA%\Notepad++(Win+R 直接输入即可到达);便携版在程序目录,靠 0 字节的doLocalConf.xml启用。- 配置文件可能分布在两个位置:
%APPDATA%\Notepad++和 Notepad++ 的安装目录,具体取决于版本和安装方式。官方手册自己也用"和/或"来描述这两个路径。- 录制的宏、自定义快捷键都存在
shortcuts.xml里,改快捷键之前先复制一份这个文件。- 升级时
config.xml必须逐项对比(Compare),session.xml和backup\必须原样保留(Keep),langs.xml/stylers.xml要跟新版.model.文件对比合并(Model)。详见第三章。- 跨大版本直接拷贝整个配置目录有风险:旧版
config.xml可能带着新版不再识别的配置项。- 备份要分层:主题和快捷键必须备份,插件可以从插件管理器重装,而
config.xml跨版本时属于"谨慎"档。
一、先搞清楚:Notepad++ 的配置存在哪
这一段解决"我要改配置,先去哪个文件夹"。这是后面所有操作的前提。
安装版:%APPDATA%\Notepad++
最快到达方式:按 Win+R,输入下面这行,回车:
%APPDATA%\Notepad++
资源管理器会直接打开配置目录。等价的完整路径是 C:\Users\<你的用户名>\AppData\Roaming\Notepad++\。
注意 AppData 是隐藏文件夹,如果你在资源管理器里手动找,需要先开启"显示隐藏的项目"。用 Win+R 输入 %APPDATA% 是最省事的做法。
便携版:程序所在目录
便携版把配置存在 notepad++.exe 所在的目录里。
区分的关键是一个 0 字节的文件:doLocalConf.xml。 这个文件存在,Notepad++ 就认为自己是便携模式,配置全部读写程序目录;不存在,就走 %APPDATA%。
所以"把安装版变成便携版"的操作很简单:在程序目录里新建一个空的 doLocalConf.xml(不用写任何内容,0 字节即可),重启 Notepad++,它就把配置挪到程序目录了。
反过来也成立:删掉这个文件,就回到安装版的配置逻辑。
⚠️ 配置文件可能分布在两个位置
这一条很少有人讲清楚,但它会直接影响你备份是否完整。
Notepad++ 的配置文件不一定全在同一个目录。具体取决于你的版本和安装方式:
- 一部分在
%APPDATA%\Notepad++\(用户级配置,每个 Windows 账户独立) - 一部分在 Notepad++ 的安装目录(通常是
C:\Program Files\Notepad++\)
官方用户手册在讲配置文件升级时,用的表述是:
这种情况你可以把
%AppData%\Notepad++\____.xml和/或C:\Program Files\Notepad++\____.xml当作"目标端"。
"和/或"这个措辞本身就说明:官方也不保证所有文件都在一处。 语言定义、主题、函数列表这类偏"程序资源"的文件,历史上更多放在安装目录;而 config.xml、session.xml 这类偏"用户设置"的,更多在 AppData。
实务建议:备份时两个目录都看一眼。尤其是你自定义过语言(UDL)或主题,一定要确认 userDefineLangs\ 和 themes\ 到底在哪边。
怎么确认当前用的是哪套配置
最可靠的方法:如果你想对照官方说明确认版本差异,Notepad++ 官网 上会标注当前版本;另一条路是「? → 调试信息」(Debug Info),它直接告诉你当前这台机器在用什么配置。
弹出的窗口里会明确列出当前生效的路径,类似:
Notepad++ v8.x.x (64-bit)
Build time : ...
Path : C:\Program Files\Notepad++\notepad++.exe
Command Line :
Admin mode : OFF
Local Conf mode : OFF
Cloud Config : OFF
Periodic Backup : ON
OS Name : Windows 11 ...
其中两个字段值得看:
- Local Conf mode:
ON表示便携模式(读程序目录),OFF表示读%APPDATA%。 - Cloud Config:
ON表示启用了云配置,配置目录被指向了云盘之类的位置。
如果你在两台机器上的 Notepad++ 表现不一致,先各查一次这个窗口,会省掉很多猜测。
云同步目录下的路径
如果你把配置目录整体放进了 OneDrive、坚果云之类的同步盘,Notepad++ 支持通过设置指向它——相关选项在「设置 → 首选项 → 云」页签(部分版本叫"云端")。
这个方案能实现多设备自动同步,但有两个前提:
- 别让两台电脑同时开着 Notepad++ 编辑同一套配置,同步冲突会生成一个"副本"文件,然后你的配置就分裂了。
- 配置里可能包含敏感信息,比如最近打开的文件列表、远程连接的站点配置。公有云上同步前想清楚这一点。
二、配置文件逐个说清:每个文件到底管什么
config.xml、stylers.xml、langs.xml、shortcuts.xml——这四个文件名你大概率都见过,但它们各管什么,能说全的人不多。
逐个文件对照
| 文件 / 目录 | 管什么 | 丢了会怎样 |
|---|---|---|
config.xml |
主配置文件,首选项里的几乎所有设置都在这里:界面外观、编辑器行为、搜索设置、备份设置、最近文件列表 | 全部设置回到默认,相当于刚装好 |
stylers.xml |
主题与语法高亮配色(样式配置器里改的东西) | 配色回到默认主题,自定义的高亮颜色全丢 |
langs.xml |
语言定义:每种语言的关键字、注释符号、折叠规则 | 语法高亮的关键字识别可能异常 |
shortcuts.xml |
快捷键映射 + 你录制的宏 | 自定义快捷键失效;录制的所有宏会消失 |
session.xml |
当前会话:打开了哪些标签、每个标签的光标位置、滚动位置 | 下次打开时标签页是空的(文件本身没丢,只是会话没了) |
contextMenu.xml |
右键菜单的自定义项 | 右键菜单回到默认 |
toolbarIcons.xml |
工具栏图标的显示/隐藏与顺序 | 工具栏回到默认布局 |
functionList\ |
函数列表面板各语言的解析规则 | 函数列表可能对某些语言失效 |
autoCompletion\ |
自动补全的词库(各语言一个文件) | 自动补全词库变少 |
userDefineLangs\ |
自定义语言(UDL)定义,你自己配的日志格式、内部 DSL 高亮 | 自定义高亮全丢,且无法重建,只能重新配一遍 |
themes\ |
主题文件,每套主题一个 .xml |
自定义主题消失 |
localization\ |
界面语言包 | 界面回到英文或默认语言 |
backup\ |
自动备份的文件历史 | 历史版本没了,误删的内容找不回来 |
doLocalConf.xml |
0 字节的标记文件,存在即启用便携模式 | 便携版会变回读 %APPDATA%,"便携"失效 |
nppLog*Issue.xml |
0 字节的日志文件标记 | 基本无影响 |
plugins\ |
插件本体与插件自己的配置(注意:这个目录可能不在 AppData,而在安装目录) | 插件全部失效 |
几个容易记错的点,单独强调:
shortcuts.xml里存着宏。 很多人以为宏存在别的地方,重装后才发现半年前录的那几个全没了。想保住宏,就保住这个文件。userDefineLangs\是不可重建的。 插件可以从插件管理器重新装,主题可以再调,但你花两小时配出来的自定义日志高亮规则,丢了就只能重配。backup\里是你的文件历史,不是配置。 它占空间可能不小,备份配置时可以考虑排除它(如果你的目的是"迁移环境"而不是"迁移文件")。
⭐ 升级时各配置文件处理策略对照表
这一段是本篇的核心资产。依据 Notepad++ 官方用户手册 Upgrading 章节整理(可对照官方原文核对),下面每一条都是逐项对照原文翻译的,不是凭记忆归纳的。
先说场景
这张表针对的场景是升级便携版:把新版本的 zip 解压到旧目录,会覆盖掉一部分配置文件,包括 config.xml——你的自定义设置就没了。官方给的解法是先解压到一个"临时目录",再把新配置逐项合并进"目标目录"。
(顺带说一句:同样的流程也适用于安装版。官方手册明确写了,当你觉得自己已安装的版本"丢了某些主题或高亮配置"时,可以把 %AppData%\Notepad++\ 和/或 C:\Program Files\Notepad++\ 当作"目标端",用同一套方法补回来。)
六类策略的官方定义
| 策略 | 官方定义(翻译) |
|---|---|
| Compare(对比) | config.xml 应当始终做逐项对比,确保既保留了你原来的选择,又纳入了新的选项。 |
| Keep(保留) | session.xml 以及 backup\ 目录下的文件,应当始终保留在目标端。不要覆盖它们,也不要删除它们。(从便携版 zip 解压出来的临时目录里并不包含这个文件和这个目录,官方之所以仍把它们列进表里,就是怕你误删或误覆盖。) |
| Optional(可选) | 这类配置文件的更新通常只是提供新功能,而你可能并不关心这些新功能(比如新增了一个右键菜单动作)。这种情况下,要不要把新内容带过来,由你自己决定。 |
| Overwrite(覆盖) | 这类配置文件用户很少自定义。除非你明确知道自己改过,否则直接用新版本覆盖通常是安全的。如果你确实自定义过(比如你在样式配置器里改过某套主题¹),那就需要对比并合并。 |
| Model(对照模型文件) | 这类文件要拿目标端的原始文件,去和临时端的 .model. 版本对比。这些文件经常被自定义,所以对比时既要带过来新功能(.model. 里有的),又不能丢掉你的自定义内容。.model. 文件本身也应当复制到目标端。 |
| Zero-byte file(0 字节文件) | 这类配置文件是 0 字节的。如果你的目标端没有这个文件,可以从临时端复制过去。 |
¹ 官方原注:如果你正在使用某一套特定主题,那你改动过该主题文件的可能性更大。请对那一个主题文件做完整对比;至于目标端里的其他主题文件,直接拿临时端的版本覆盖通常不会有问题。
完整对照表
下表逐项对照官方原表翻译。"目标端"指你正在用的那套 Notepad++ 的配置目录,"临时端"指新版本 zip 解压出来的目录。
| 目标端文件 | 临时端文件 | 处理策略 |
|---|---|---|
...\config.xml |
...\config.xml |
Compare |
...\session.xml |
(不存在) | Keep |
...\backup\*.* |
(不存在) | Keep |
...\contextMenu.xml |
...\contextMenu.xml |
Optional |
...\shortcuts.xml |
...\shortcuts.xml |
Optional |
...\toolbarIcons.xml |
...\toolbarIcons.xml |
Optional |
...\langs.xml |
...\langs.model.xml |
Model |
...\stylers.xml |
...\stylers.model.xml |
Model |
...\*_example.xml |
...\*_example.xml |
Overwrite |
...\themes\___.xml |
...\themes\____.xml |
Overwrite ¹ |
...\autoCompletion\___.xml |
...\autoCompletion\____.xml |
Overwrite |
...\localization\___.xml |
...\localization\____.xml |
Overwrite |
...\functionList\___.xml |
...\functionList\____.xml |
Overwrite |
...\userDefineLangs\___.xml |
...\userDefineLangs\____.xml |
Overwrite |
...\updater\*.* |
...\updater\*.* |
Overwrite |
...\change.log |
...\change.log |
Overwrite |
...\license.txt |
...\license.txt |
Overwrite |
...\doLocalConf.xml |
...\doLocalConf.xml |
Zero-byte file |
...\nppLog*Issue.xml |
...\nppLog*Issue.xml |
Zero-byte file |
一条官方补充规则
官方还加了一句兜底说明,照抄过来:
如果你发现某个配置文件在临时端存在,但在目标端不存在,而且它不在上面的列表里,那它可能是本说明还没来得及更新的新增配置文件,这种情况下你应当把这个文件复制过去。
换句话说:表是死的,新版本可能加新文件。 遇到表里没有的文件,默认往目标端复制。
操作流程(浓缩版)
官方原文给的是完整的分步流程,这里压缩成可执行的四步:
- 准备:把现有目录完整备份一份(出错能退回去)。确保 Notepad++ 刚重启过、且重启后没在界面里改过任何设置(
config.xml会在退出时才写入,刚重启能拿到干净状态)。 - 解压新版到临时目录,比如
c:\PortableNpp.temp\。 - 按上表逐项处理配置文件:对比临时端有而目标端没有的设置,把它们补进目标端。重点照顾
config.xml(Compare)、langs.xml和stylers.xml(Model,要跟.model.文件比)。 - 最后才复制程序文件:退出 Notepad++,把临时端的
notepad++.exe和plugins\config\nppPluginList.dll复制到目标端,重启。
顺序别乱:先把配置合并好,最后再换 notepad++.exe。反过来做的话,新版程序可能已经用旧配置跑起来并写回了文件,你再合并就乱了。
插件怎么办
官方的说法是:安装器/更新器升级,或者手动升级便携版,都几乎不会影响你的插件;但升级之后应当去「插件 → 插件管理 → Updates」检查一遍插件更新。
另外,无论用哪种方式升级,都应该更新 nppPluginList.dll(插件管理器的列表文件)。上一步第 4 条里复制的那个文件就是干这个的。
⚠️ 跨大版本拷贝 config.xml 的风险
这是实践中最容易翻车的一点,也是"我明明备份了,恢复之后反而出问题"的主要原因。
config.xml 里记录的是当前版本认识的配置项。当你把一个很老版本生成的 config.xml 直接扔给一个很新的 Notepad++,可能出现:
- 老配置项新版已经不认了,被忽略(这种最轻,只是设置没生效);
- 老配置项的值域变了,新版按新语义解释,行为诡异;
- 新版新增的配置项在你的老文件里根本没有,Notepad++ 会用默认值补上(这部分通常没问题)。
所以:
- 小版本升级(比如 8.6 → 8.7):直接沿用
config.xml基本安全。 - 跨大版本(比如 7.x → 8.x):建议按官方的 Compare 策略逐项对比,或者干脆用新配置重新配一遍,只把主题、快捷键这些"独立文件"搬过来。
这也是下一章分层备份清单里,我把 config.xml 单独归到"跨版本谨慎"一档的原因。
三、外观设置:字体、主题与深色模式
字体这件事不只是审美问题:选错了中文跟英文宽度对不齐,做列编辑时会真的影响操作。
样式配置器
「设置 → 语言格式设置」打开样式配置器,这是改外观的主战场:
- 顶部"主题"下拉框:切换整套配色;
- 左侧列表:选择全局样式或者某一种语言;
- 右侧:改前景色、背景色、字体、字号,还能勾粗体/斜体、下划线。
改之前先想清楚范围:左侧选中"全局样式"改的是整体,选中某个具体语言(比如 Python)改的只影响那一种语言。很多人想改全局字体,却在某个语言下改了半天,结果只有那一种语言生效。
中文字体的选择
这是个中文用户绕不开的问题。
Consolas 是很好的等宽编程字体,但它不包含中文字符。在 Consolas 下输入中文,Notepad++ 会回退到系统默认的中文字体来显示,能显示,但中文宽度和英文宽度对不齐。
后果是什么?做列编辑的时候,你拖出来的"视觉矩形"和实际字符位置可能有偏差。 处理中文数据时这挺烦人的。
两条解决路径:
- 装一个含中文的等宽字体。这类字体专门为中英混排设计,中文正好是英文的两倍宽。常见的选择有 Sarasa Mono SC(更纱黑体)、Cascadia Code(微软出的,较新版本带中文)、以及 JetBrains Mono 的部分衍生版本。装完在样式配置器里选它,中英文就对齐了。
- 接受不对齐,改用别的办法处理中文文本。如果你大部分时候写的是代码,中文只出现在注释里,那 Consolas 也够用,遇到中文数据的批量处理时改用多光标或正则(这两者不依赖视觉对齐)。
我个人的做法是第 1 条。字体这种东西一天看八小时,值得花十分钟配好。
深色模式
「设置 → 首选项 → 常规 → 深色模式」,下拉框里有几个档位。
需要注意的是:深色模式主要改的是 Notepad++ 自己的界面(菜单、标签栏、侧边栏),编辑区的配色由"主题"决定。 所以开完深色模式,通常还要去样式配置器里选一套深色主题(比如 Obsidian、Deep Black),两边才配套。
如果开了深色模式但没换主题,会出现"界面是黑的、编辑区是白的"这种割裂状态。
语法高亮的细粒度调整
在样式配置器左侧选中某语言后,可以针对该语言的每一种语法元素单独改色:关键字、注释、字符串、数字、运算符各归各的。
一个实用场景:觉得注释颜色太暗看不清,就在"注释"那一行把前景色调亮;觉得字符串颜色刺眼,就单独改字符串。不用换整套主题。
导入与导出主题
主题在样式配置器里可以另存,存出来是一个 .xml 文件,放在 themes\ 目录里。
想分享配色给同事,把那个 .xml 发给他,让他丢进自己的 themes\ 目录重启即可。团队统一配色这件事,用这个方式实现成本最低。
四、编辑器行为设置:把 N++ 调成顺手的样子
这一段解决"首选项里那一堆页签都是干什么的",以及几项几乎人人都该改的设置。
首选项页签速览
「设置 → 首选项」里的页签不少,不同版本数量和名称会有出入。主要的几个:
| 页签 | 主要管什么 |
|---|---|
| 常规 | 界面语言、工具栏、标签栏、深色模式、文件关联提示 |
| 编辑 / 编辑 2 | 编辑行为:自动缩进、显示行号、缩进参考线、多编辑开关(见下)、列选择转多编辑 |
| 新建 | 新建文件的默认编码、默认语言、默认换行格式 |
| 默认目录 | 打开/保存对话框的默认路径 |
| 文件关联 | 哪些扩展名用 Notepad++ 打开 |
| 语言 | Tab 与缩进设置(按语言分别配置) |
| 备份 | 备份策略、备份目录、会话快照 |
| 自动完成 | 自动补全的触发方式与词库 |
| 多实例 / 性能 | 是否允许多开、大文件相关阈值 |
| 搜索 | 搜索行为、是否自动填充选中文本 |
| 高亮 | 括号匹配、智能高亮、当前行高亮的配色 |
| 云 | 配置目录指向云盘 |
| MISC | 自动更新、点击链接是否可跳转等杂项 |
页签的确切名称在不同版本间会变,对照你手上的版本看一眼就知道对应关系。
Tab 与空格:几乎人人都该改的一项
「设置 → 首选项 → 语言」,右下角有「Tab 设置」:
- Tab 大小:建议 4(Python 社区常用 4,Go 用 Tab,前端常用 2)
- 替换为空格:建议勾上
勾上"替换为空格"之后,你按 Tab 键,插入的是空格字符而不是制表符。这样文件在任何编辑器、任何 Tab 宽度设置下看起来都一样。
Python 项目里这一项是硬性的。 Python 靠缩进表达代码块,Tab 和空格混用会直接导致语法错误,而且报错行号往往对不上,排查起来很痛苦。
判断当前文件有没有混用:「视图 → 显示符号 → 显示空格与制表符」,空格显示为小点,Tab 显示为箭头,一眼就能看出来。
几项建议打开/关闭的显示设置
| 设置 | 位置 | 建议 |
|---|---|---|
| 显示行号 | 首选项 → 编辑 | 开 |
| 显示缩进参考线 | 首选项 → 编辑 | 开(写嵌套代码时很有用) |
| 显示空格与制表符 | 视图 → 显示符号 | 排查缩进问题时临时开 |
| 自动换行 | 视图 → 自动换行 | 看日志时开,写代码时关 |
| 高亮当前行 | 首选项 → 高亮 | 开(长文件里不容易看串行) |
多光标需要手动开启(与入门篇呼应)
前面几章反复提到的多光标功能,开关就在这里:
- v8.6.3 及之后:「设置 → 首选项 → 编辑 2 → 启用多编辑(Ctrl+鼠标点击/选择)」
- v8.6 之前:「设置 → 首选项 → 编辑 → 启用多编辑(Ctrl+鼠标点击/选择)」
- v8.6 – v8.6.2:默认开启,选项被临时移除
在新版本上找不到这个开关,是因为它搬家了。详细的版本差异和三种放置光标的操作,在 Notepad++ 基础操作教程 的第六章里讲得比较细。
右键菜单与文件关联
- 「设置 → 首选项 → 文件关联」里勾选要用 Notepad++ 打开的扩展名。
- 想在资源管理器右键里出现"用 Notepad++ 编辑",最省事的做法是重装一次并在安装时勾选相关选项;也可以手动改注册表,但没必要——Windows 大更新后经常把关联抢回去,重勾一次比折腾注册表省事。
编码相关的默认设置
「设置 → 首选项 → 新建」里可以设:
- 默认编码:建议 UTF-8(无 BOM)
- 默认换行格式:看你主要写什么(给 Linux 用的选 Unix LF)
这几项的取舍判断(尤其是"以 UTF-8 格式打开所有文件"要不要勾)在 默认编码的取舍判断 里有完整分析,这里不重复——那篇把编码、BOM、行尾符三件事放在一起讲,比在这里展开更清楚。
标签页与窗口管理
- 多个标签可以用
Ctrl+Tab切换; - 拖动标签到边缘可以分屏;
- 右键标签有"移动到另一视图""克隆到另一视图""在新窗口中打开"等选项;
- 「设置 → 首选项 → 常规」里可以改标签栏位置、是否显示关闭按钮、双击标签的行为。
五、各编程语言的配置
写 C++ 和写 Python 需要的配置不是一回事。这一章按语言分开说,顺带讲怎么给没有现成高亮的文件(比如自家系统的日志)配一套。
通用规则
三件事在任何语言下都适用:
- 选对语言:「语言」菜单里选,或者点状态栏最右侧的文件类型。选对了才有高亮、折叠、自动补全。
- 关联扩展名:「设置 → 首选项 → 语言」可以把自定义扩展名映射到某种语言。比如把
.vue映射到 HTML、把.conf映射到 Shell。 - 按语言设缩进:「设置 → 首选项 → 语言」里的 Tab 设置是可以按语言单独设的。前端用 2 空格、Python 用 4 空格,可以并存。
C / C++
- 高亮、折叠、括号匹配开箱即用。
- 格式化:装 NppAStyle 插件,可以一键按 AStyle 规则格式化代码(缩进、括号风格、空格)。这类语言专用的小插件很多,挑选和位数匹配的注意事项见 插件位数匹配注意事项。
- 编译运行:「运行 → 运行」,填
g++ "$(FULL_CURRENT_PATH)" -o "$(NAME_PART).exe",保存成菜单项;再配一条cmd /c "$(NAME_PART).exe"用来跑。
Java
- 高亮和括号匹配成熟。
- 「运行」里可以配
javac "$(FILE_NAME)"编译、java "$(NAME_PART)"运行。 - 学习阶段够用;做正经项目还是上 IDE,Notepad++ 没有依赖管理和重构。
Python
Python 有两个必须注意的点:
- 缩进敏感,必须用空格(或者统一用 Tab,但不能混)。见第四章的 Tab 设置。
- 文件不要带 BOM。带 BOM 的 Python 脚本在 shebang 行可能出问题,具体哪些版本会报错我没有逐一验证过,但"脚本文件一律无 BOM"这个结论不依赖版本,照做就行。
运行配置:「运行 → 运行」填 python "$(FULL_CURRENT_PATH)"。如果想一保存就跑,可以配 NppExec。
JavaScript / TypeScript / HTML / CSS
- 四件套都是内置高亮。
- 缩进习惯上前端常用 2 空格,可以在「语言」设置里单独给这些语言配。
- 格式化可以装 JSTool(格式化/压缩 JavaScript)、或者 XML Tools(格式化 HTML/XML)。
PHP / SQL
- PHP 的高亮支持 HTML 混排,写模板文件时表现不错。
- SQL 的高亮是通用的,各大方言(MySQL、PostgreSQL、SQL Server)的关键字基本覆盖。
- SQL 的实际执行还是交给数据库客户端,Notepad++ 适合写片段和批量改写。批量改写 SQL 的正则技巧在 批量改写 SQL 的正则技巧 里有专门案例。
Go / Rust / Ruby / Swift / Shell
- Go 和 Rust 的官方工具链很完善,在 Notepad++ 里一般是配「运行」命令调
go run/cargo run。 - Go 有个特殊点:
gofmt强制用 Tab 缩进,且不接受配置。所以 Go 项目里 Tab 设置要按它来,别勾"替换为空格"。 - Shell 脚本必须注意行尾符:在 Windows 上编辑完要转成 Unix (LF),否则传到 Linux 会报
^M: bad interpreter。这是运维人群最高频的一个坑,排查方法在「编码与乱码」那篇里。
自定义语言(UDL):给没有现成高亮的文件配一套
这是 Notepad++ 一个被低估的能力,尤其适合处理日志和内部配置格式。
「语言 → 自定义语言格式」打开 UDL 编辑器,你可以定义:
- 关键字列表(可以分多组,每组一个颜色)
- 注释的行注释符和块注释符
- 数字、字符串、运算符的样式
- 折叠规则
典型用例:给自家系统的日志格式配一套高亮——[ERROR] 标红、[WARN] 标黄、时间戳和 IP 各自上色。配完之后几万行日志一眼就能扫出异常。
配好的 UDL 可以在同一个对话框里导出成 .xml,发给同事让他们导入,团队共用一套规则。这个文件会存在 userDefineLangs\ 目录里,属于备份时绝对不能漏的一类(它没法从别处重建)。
函数列表与自动补全
- 「视图 → 函数列表」显示当前文件的函数/类大纲,点击跳转。
- 函数列表的规则文件在
functionList\目录,按语言分文件。对主流语言开箱即用;对小众语言可以自己写规则(XML 格式,本质是正则匹配)。 - 自动补全词库在
autoCompletion\目录,同样按语言分文件。默认的"函数补全"和"单词补全"在「设置 → 首选项 → 自动完成」里开。
多语言项目:用 .editorconfig 统一约定
团队里如果有人用 Notepad++、有人用 VS Code、有人用 IntelliJ,缩进风格很容易打架。
解决办法是在项目根目录放一个 .editorconfig 文件,声明缩进、编码、行尾符:
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
[*.{js,ts,css,html}]
indent_size = 2
[*.go]
indent_style = tab
这个约定的规范说明在 EditorConfig 官方规范。
需要说清楚的是:Notepad++ 原生并不读取 .editorconfig。 它的缩进行为由「首选项 → 语言」里的设置决定,不随项目变化。所以 .editorconfig 在这套工作流里的作用更多是"给团队一个明确的书面约定",Notepad++ 用户需要手工照着配一次。想让它自动生效,需要额外的插件支持。
我不打算把这点说成"Notepad++ 支持 .editorconfig"——它不支持,知道这一点比被误导强。
六、快捷键:从记住到自定义
改快捷键之前有一件事必须先做,不做的后果是丢掉所有录过的宏。
快捷键映射器
「设置 → 快捷键映射器」打开,有四个页签:
| 页签 | 管什么 |
|---|---|
| 主菜单 | Notepad++ 内置菜单命令的快捷键 |
| 宏 | 你录制的宏绑到哪个键 |
| 运行命令 | 「运行」菜单里你自定义的命令 |
| 插件命令 | 已安装插件提供的命令 |
改快捷键的步骤
- 打开快捷键映射器,选对页签;
- 找到目标命令,双击;
- 在弹出的对话框里选择一个新的组合键;
- 如果新组合键已被占用,对话框会提示冲突,让你确认是否覆盖。
最后一步的冲突提示很有用。我建议不要选择覆盖。Notepad++ 有不少默认快捷键,覆盖掉一个你不常用的,某天触发到时会很困惑。挑一个空位更安全。
改之前先备份 shortcuts.xml
理由前面说过一遍,这里再说一次因为真的容易忘:shortcuts.xml 里同时存着你的自定义快捷键和所有录制的宏。 改乱了、或者文件损坏了,这两样一起没。
动手前复制一份到桌面,改完确认没问题再删。
宏的录制和使用(包括宏存在 shortcuts.xml 这件事的来龙去脉)在 宏录制与脚本自动化 里有专门一章,那篇把"正则 → 宏 → 脚本"这条递进链讲完整了。
值得自定义的五个快捷键
默认设置里有几个键位不属于"错",但用起来别扭,改掉能省不少事。以下是我的建议,你可以按自己的习惯调整:
| 场景 | 建议 |
|---|---|
| 全部保存 | 默认 Ctrl+Alt+Shift+S 太难按,可以改成 Ctrl+Shift+A 之类顺手的 |
| 在文件中查找 | 默认 Ctrl+Shift+F,如果和输入法/其他软件冲突,换一个 |
| 打开函数列表 | 默认没有快捷键,可以绑一个(比如 Alt+L) |
| 在选定的多文件里搜索 | 同理,绑一个 |
| 你最常录的那个宏 | 在「宏」页签里给它一个好记的组合键 |
一个实用技巧:快捷键映射器里可以按"快捷键"列排序,扫一眼就知道哪些组合还空着。
七、备份:哪些必须备份,哪些可以重建
这一段解决"备份整个文件夹"这个建议到底对不对。答案是:能备份,但不是所有东西都值得备份,也不是所有东西都能直接恢复。
先开自动备份
「设置 → 首选项 → 备份」:
- 会话快照与定期备份:开着。它会在你编辑时周期性保存副本,崩溃或断电时能找回。
- 备份目录:默认在
%APPDATA%\Notepad++\backup\,可以改成别的位置(比如单独一块盘)。
需要注意的是,自动备份保护的是你的文档,不是你的配置。两者是两回事,别搞混了。
分层备份清单
竞品基本都说"备份整个文件夹",但没回答"哪些千万别拷"和"哪些丢了也无所谓"。这张表是我按两个维度分的:丢了的痛苦程度 × 能不能重建。
| 层级 | 包含 | 判断理由 |
|---|---|---|
| 必须备份 | shortcuts.xml(含录制的宏)、userDefineLangs\(自定义语言)、themes\ 里你自己改过的主题、stylers.xml(自定义配色) |
不可重建。宏重录要重想一遍操作步骤,UDL 重配要花几小时,自定义配色基本调不回原样 |
| 建议备份 | config.xml、langs.xml、contextMenu.xml、toolbarIcons.xml、functionList\、autoCompletion\ 里你自己加过的词库 |
重建成本高(要一项一项重新点),但理论上能重配 |
| 可以重建 | localization\、plugins\ 本体、updater\、change.log、license.txt、*_example.xml |
插件可以从插件管理器重装,语言包可以重新下,其余是程序资源 |
| 跨版本谨慎 | config.xml(跨大版本时) |
老配置可能带着新版不认的配置项,直接覆盖可能出问题。小版本升级无妨,跨大版本建议按第三章的 Compare 策略对比后再用 |
| 可以不备份 | session.xml、backup\ |
session.xml 只是"上次打开了哪些标签",丢了不心疼;backup\ 是文档历史,体积可能很大,迁移环境时可以不带 |
注意 config.xml 同时出现在"建议备份"和"跨版本谨慎"两档——这不是矛盾,是条件不同:同版本恢复它是最有价值的,跨大版本直接覆盖它是最危险的。
备份策略
- 频率:配置不常变。每配完一次大的调整备份一次,或者每季度一次,足够了。不用每天。
- 方式:整个配置目录打个 zip,文件名带上日期和版本号,比如
npp-config-2026-08-29-v8.7.zip。 - 放哪:本地另一块盘 + 云盘各一份。配置体积小(通常几 MB,除非
backup\很大),不占地方。 - 注意敏感信息:配置里可能包含最近打开的文件列表、远程连接配置。公有云上存之前想一下。
恢复演练:备份了没验证等于没备份
这一条听起来像废话,但确实是最常被跳过的一步。
找一个不忙的时候,把备份的 zip 解压到一个临时目录,跟当前配置目录对比一下关键文件在不在、能不能打开。尤其是 userDefineLangs\ 和 shortcuts.xml 这两个——它们是最容易在备份时被漏掉的。
真到重装系统那天才发现备份是空的或者缺了关键文件,那时候已经晚了。
八、迁移到新电脑 / 重装系统
换电脑是配置最容易丢的时刻,也是最检验备份有没有做对的时刻。三个方案,按麻烦程度递增。
方案 A:整体复制配置目录
适合:同版本、同位数的两台机器。
步骤:
- 旧机器上退出 Notepad++;
- 复制
%APPDATA%\Notepad++\整个目录(如果在安装目录也有配置文件,一并复制); - 新机器上先装好同版本的 Notepad++,启动一次再退出(让它生成目录结构);
- 把复制过来的文件覆盖到新机器的对应目录。
这是最省事的方案,但对版本一致性要求最高。 版本差太多就别用这个,走方案 B。
方案 B:只复制核心文件
适合:跨版本迁移,或者你只想要主题和快捷键、不要旧版本的一堆杂项。
只复制这几样:
config.xml ← 先按第三章的方式对比过再用
stylers.xml ← 主题与配色
shortcuts.xml ← 快捷键 + 宏
userDefineLangs\ ← 自定义语言(不可重建,必带)
themes\ ← 自定义主题
functionList\ ← 可选
autoCompletion\ ← 可选(只带你自己加过的)
覆盖到新机器的对应目录,重启。
这个方案的好处是可控:你清楚地知道带过去了什么,出问题也容易定位。我个人更推荐这个,哪怕多花五分钟。
方案 C:改用便携版(一劳永逸)
适合:经常换机器、或者想在 U 盘里随身带一套环境。
直接把整个便携版目录复制到新机器,双击 notepad++.exe 就能用,所有配置跟着走。详见下一章。
插件的迁移
插件本体一般不在 AppData,而在安装目录的 plugins\ 下。插件不能跨位数迁移:32 位 Notepad++ 的插件,拷到 64 位 Notepad++ 上不认。
所以插件迁移最省事的做法不是拷贝,而是:
- 记下你装了哪些插件(插件管理器里有列表);
- 在新机器上用「插件 → 插件管理」重新装一遍;
- 需要保留插件自己的配置,再单独拷对应的插件配置目录。
插件的选择、位数匹配和常见坑,见 插件选择与常见坑。
迁移后的验证清单
别迁完就以为完事了,花两分钟过一遍:
- [ ] 主题和字体对不对
- [ ] 深色模式是否正常
- [ ] 自定义快捷键按下去有没有反应
- [ ] 录的宏还在不在(
shortcuts.xml) - [ ] 自定义语言的规则在不在(
userDefineLangs\,最容易漏) - [ ] 函数列表能不能用
- [ ] 新建文件的默认编码是不是 UTF-8
- [ ] 插件都装齐了吗,位数对不对
九、便携版:把整个工作环境装进 U 盘
这一段解决"我想在多台电脑之间带着同一套环境走"。
便携版 vs 安装版:唯一区别是数据存哪
很多人以为便携版是"功能精简版",其实不是。
两者的程序文件完全一样,功能也完全一样。唯一的区别是配置文件存在哪里:
| 配置文件位置 | 适用场景 | |
|---|---|---|
| 安装版 | %APPDATA%\Notepad++\(跟着 Windows 用户账户走) |
固定在一两台机器上用 |
| 便携版 | 程序所在目录(跟着 U 盘/文件夹走) | 换机器频繁、在公共电脑上用 |
怎么启用便携模式
在 notepad++.exe 所在目录里,新建一个名为 doLocalConf.xml 的空文件(0 字节)。重启 Notepad++,配置就改读写程序目录了。
验证有没有生效:「? → 调试信息」,看 Local Conf mode 是不是 ON。
反过来,删掉这个文件就回到安装版逻辑。
⚠️ 一个容易踩的坑:Windows 默认隐藏已知文件类型的扩展名,你新建文本文件时很容易存成 doLocalConf.xml.txt。文件名不对就不生效。建议在资源管理器里先开启"显示文件扩展名",或者用命令行创建。
多设备同步的三种方案
| 方案 | 做法 | 适合 |
|---|---|---|
| 整体同步 | 把整个便携版目录放进同步盘(OneDrive / 坚果云) | 设备间配置要完全一致;注意别同时开两个 Notepad++,会产生同步冲突 |
| 核心文件同步 | 只同步 config.xml、stylers.xml、shortcuts.xml、userDefineLangs\ 这几个 |
各机器上的 Notepad++ 版本可能不同,只同步设置更稳 |
| 导出导入 | 手动复制主题 .xml 和 UDL .xml |
偶尔同步一次,不需要自动化 |
在公共电脑上用
便携版在网吧、图书馆、客户现场这些场合很好用,但有两个注意点:
- 清理最近文件列表:「设置 → 首选项 → 常规」里可以清空最近文件,走之前清一下,别把工作文件的路径留在别人的机器上。
- 检查有没有存敏感配置:如果你配过远程连接(比如 NppFTP 的站点和密码),拔 U 盘前想一下这些配置是跟着你走的。U 盘丢了等于凭据丢了。
U 盘写入速度与寿命
便携版每次保存设置都会写 U 盘,这是正常的,量很小,不用担心寿命。
真正需要注意的是 U 盘的读写速度。如果 U 盘很慢,Notepad++ 的启动和保存会明显变卡,体验会差很多。如果打算长期在 U 盘上跑,建议用一个读取速度过得去的盘(USB 3.0 以上),不要拿十年前的老 U 盘凑合。
另外:U 盘拔之前一定要先退出 Notepad++。 程序还在跑的时候拔盘,正在写入的配置可能损坏——config.xml 损坏的症状是启动时报"Load config.xml failed"。
如果你经常在多台电脑之间切换,Notepad++ 中文网 首页提供了便携版的获取入口,解压即用;也可以直接到 Notepad++ 便携版下载 页面拿。
十、版本意识与长期维护
这一段解决"升级会不会丢配置"以及"配置坏了怎么救"。
升级前必做的一件事
备份配置目录。 就是这么简单,也就是这么容易被跳过。
安装版用更新器升级通常是安全的(它会保留 %APPDATA% 里的配置),但"通常"不等于"一定"。跨大版本升级、或者中途断电,都有出问题的可能。
花三十秒打个 zip,能省掉两小时的重建。
升级便携版的处理方式不同,要按第三章那张官方对照表逐项合并。直接解压覆盖会丢 config.xml 里的所有设置。
配置损坏的自救
症状:启动时报错,或者界面变得很奇怪、某些设置怎么改都不生效。配置损坏与恢复的常见问答 里还有几个具体场景。
最快的一招:
- 退出 Notepad++;
- 把
config.xml重命名为config.xml.bak; - 重启 Notepad++,它会生成一份全新的默认配置。
到这一步,软件已经能正常用了。接下来你可以选择:
- 重新配一遍(配置量不大的话,这反而更干净);
- 或者打开
config.xml.bak,把自己需要的那几项挑出来,手动合并回新的config.xml。
不要直接把 .bak 改回去。如果它是损坏的,改回去还是坏。
定期检查清单(每季度五分钟)
- [ ] 配置备份还在吗,是最新的吗
- [ ] 插件有没有待更新(「插件 → 插件管理 → Updates」)
- [ ]
backup\目录是不是涨得太大了,要不要清理 - [ ] 最近文件列表里有没有该清掉的
- [ ] 有没有配了但一直没用上的东西,可以删掉
结语
配置这件事有个特点:它不像学一个新功能那样有立竿见影的成就感,所以很容易被一直往后推。但它的回报是持续的:花一次时间把字体、主题、缩进、编码、备份都设对,之后每一天都受益。
如果这篇只能记住一件事,我建议是这句:shortcuts.xml 和 userDefineLangs\ 这两个东西一定要备份。 一个存着你所有的宏,一个存着你配的自定义语言,它们都是丢了就重建不回来的。
至于升级时各配置文件该怎么处理,第三章那张表我建议你照着做一遍,而不是照着读一遍。亲手走一次的印象,比读三遍深。