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++ 支持通过设置指向它——相关选项在「设置 → 首选项 → 云」页签(部分版本叫"云端")。

这个方案能实现多设备自动同步,但有两个前提:

  1. 别让两台电脑同时开着 Notepad++ 编辑同一套配置,同步冲突会生成一个"副本"文件,然后你的配置就分裂了。
  2. 配置里可能包含敏感信息,比如最近打开的文件列表、远程连接的站点配置。公有云上同步前想清楚这一点。

二、配置文件逐个说清:每个文件到底管什么

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

一条官方补充规则

官方还加了一句兜底说明,照抄过来:

如果你发现某个配置文件在临时端存在,但在目标端不存在,而且它不在上面的列表里,那它可能是本说明还没来得及更新的新增配置文件,这种情况下你应当把这个文件复制过去。

换句话说:表是死的,新版本可能加新文件。 遇到表里没有的文件,默认往目标端复制。

操作流程(浓缩版)

官方原文给的是完整的分步流程,这里压缩成可执行的四步:

  1. 准备:把现有目录完整备份一份(出错能退回去)。确保 Notepad++ 刚重启过、且重启后没在界面里改过任何设置(config.xml 会在退出时才写入,刚重启能拿到干净状态)。
  2. 解压新版到临时目录,比如 c:\PortableNpp.temp\。
  3. 按上表逐项处理配置文件:对比临时端有而目标端没有的设置,把它们补进目标端。重点照顾 config.xml(Compare)、langs.xml 和 stylers.xml(Model,要跟 .model. 文件比)。
  4. 最后才复制程序文件:退出 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++ 会回退到系统默认的中文字体来显示,能显示,但中文宽度和英文宽度对不齐。

后果是什么?做列编辑的时候,你拖出来的"视觉矩形"和实际字符位置可能有偏差。 处理中文数据时这挺烦人的。

两条解决路径:

  1. 装一个含中文的等宽字体。这类字体专门为中英混排设计,中文正好是英文的两倍宽。常见的选择有 Sarasa Mono SC(更纱黑体)、Cascadia Code(微软出的,较新版本带中文)、以及 JetBrains Mono 的部分衍生版本。装完在样式配置器里选它,中英文就对齐了。
  2. 接受不对齐,改用别的办法处理中文文本。如果你大部分时候写的是代码,中文只出现在注释里,那 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 需要的配置不是一回事。这一章按语言分开说,顺带讲怎么给没有现成高亮的文件(比如自家系统的日志)配一套。

通用规则

三件事在任何语言下都适用:

  1. 选对语言:「语言」菜单里选,或者点状态栏最右侧的文件类型。选对了才有高亮、折叠、自动补全。
  2. 关联扩展名:「设置 → 首选项 → 语言」可以把自定义扩展名映射到某种语言。比如把 .vue 映射到 HTML、把 .conf 映射到 Shell。
  3. 按语言设缩进:「设置 → 首选项 → 语言」里的 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 有两个必须注意的点:

  1. 缩进敏感,必须用空格(或者统一用 Tab,但不能混)。见第四章的 Tab 设置。
  2. 文件不要带 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++ 内置菜单命令的快捷键
宏 你录制的宏绑到哪个键
运行命令 「运行」菜单里你自定义的命令
插件命令 已安装插件提供的命令

改快捷键的步骤

  1. 打开快捷键映射器,选对页签;
  2. 找到目标命令,双击;
  3. 在弹出的对话框里选择一个新的组合键;
  4. 如果新组合键已被占用,对话框会提示冲突,让你确认是否覆盖。

最后一步的冲突提示很有用。我建议不要选择覆盖。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:整体复制配置目录

适合:同版本、同位数的两台机器。

步骤:

  1. 旧机器上退出 Notepad++;
  2. 复制 %APPDATA%\Notepad++\ 整个目录(如果在安装目录也有配置文件,一并复制);
  3. 新机器上先装好同版本的 Notepad++,启动一次再退出(让它生成目录结构);
  4. 把复制过来的文件覆盖到新机器的对应目录。

这是最省事的方案,但对版本一致性要求最高。 版本差太多就别用这个,走方案 B。

方案 B:只复制核心文件

适合:跨版本迁移,或者你只想要主题和快捷键、不要旧版本的一堆杂项。

只复制这几样:

config.xml          ← 先按第三章的方式对比过再用
stylers.xml         ← 主题与配色
shortcuts.xml       ← 快捷键 + 宏
userDefineLangs\    ← 自定义语言(不可重建,必带)
themes\             ← 自定义主题
functionList\       ← 可选
autoCompletion\     ← 可选(只带你自己加过的)

覆盖到新机器的对应目录,重启。

这个方案的好处是可控:你清楚地知道带过去了什么,出问题也容易定位。我个人更推荐这个,哪怕多花五分钟。

方案 C:改用便携版(一劳永逸)

适合:经常换机器、或者想在 U 盘里随身带一套环境。

直接把整个便携版目录复制到新机器,双击 notepad++.exe 就能用,所有配置跟着走。详见下一章。

插件的迁移

插件本体一般不在 AppData,而在安装目录的 plugins\ 下。插件不能跨位数迁移:32 位 Notepad++ 的插件,拷到 64 位 Notepad++ 上不认。

所以插件迁移最省事的做法不是拷贝,而是:

  1. 记下你装了哪些插件(插件管理器里有列表);
  2. 在新机器上用「插件 → 插件管理」重新装一遍;
  3. 需要保留插件自己的配置,再单独拷对应的插件配置目录。

插件的选择、位数匹配和常见坑,见 插件选择与常见坑。

迁移后的验证清单

别迁完就以为完事了,花两分钟过一遍:

  • [ ] 主题和字体对不对
  • [ ] 深色模式是否正常
  • [ ] 自定义快捷键按下去有没有反应
  • [ ] 录的宏还在不在(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 里的所有设置。

配置损坏的自救

症状:启动时报错,或者界面变得很奇怪、某些设置怎么改都不生效。配置损坏与恢复的常见问答 里还有几个具体场景。

最快的一招:

  1. 退出 Notepad++;
  2. 把 config.xml 重命名为 config.xml.bak;
  3. 重启 Notepad++,它会生成一份全新的默认配置。

到这一步,软件已经能正常用了。接下来你可以选择:

  • 重新配一遍(配置量不大的话,这反而更干净);
  • 或者打开 config.xml.bak,把自己需要的那几项挑出来,手动合并回新的 config.xml。

不要直接把 .bak 改回去。如果它是损坏的,改回去还是坏。

定期检查清单(每季度五分钟)

  • [ ] 配置备份还在吗,是最新的吗
  • [ ] 插件有没有待更新(「插件 → 插件管理 → Updates」)
  • [ ] backup\ 目录是不是涨得太大了,要不要清理
  • [ ] 最近文件列表里有没有该清掉的
  • [ ] 有没有配了但一直没用上的东西,可以删掉

结语

配置这件事有个特点:它不像学一个新功能那样有立竿见影的成就感,所以很容易被一直往后推。但它的回报是持续的:花一次时间把字体、主题、缩进、编码、备份都设对,之后每一天都受益。

如果这篇只能记住一件事,我建议是这句:shortcuts.xml 和 userDefineLangs\ 这两个东西一定要备份。 一个存着你所有的宏,一个存着你配的自定义语言,它们都是丢了就重建不回来的。

至于升级时各配置文件该怎么处理,第三章那张表我建议你照着做一遍,而不是照着读一遍。亲手走一次的印象,比读三遍深。

下一步

  • 想学批量改写文本(改日期格式、提取日志字段、给 SQL 批量加语句)→ 正则批量替换实例,15 个能直接抄的实例。
  • 遇到中文乱码、大文件卡死、或者要远程编辑服务器文件 → 乱码与大文件排障。

还想看更多 Notepad++ 教程?

回到教程总入口,5 篇长文专题一次看全,从入门到进阶都不绕路。

查看全部使用教程
使用教程