简介:Notepad++是一款面向程序员与文本处理用户的免费源代码编辑器,支持C++、Java、Python、PHP等多种语言的语法高亮与代码折叠,以轻量、高效、可扩展著称,常用于替代Windows系统自带记事本。资源包共含392个文件,压缩后仅4.56MB,其中XML配置、PNG图标、HTML帮助文档、CSS样式、DLL运行库、JS脚本等类型一应俱全,可满足安装部署、界面定制与功能扩展需求。目前已有1084人浏览学习。借助自动缩进、正则搜索替换、多文档同时编辑、宏录制播放以及FTP/SFTP远程文件操作等特性,能显著提升日常编码与文本处理效率;配合丰富的插件生态,还可实现代码调试、格式化与版本控制集成,适合从初学者到资深开发者的各类用户快速上手使用。
1. Notepad++ 凭什么还能打:轻量编辑器里它是绕不开的那一个
Notepad++ 是个老牌编辑器,很多人觉得它早该被 VS Code 取代,可真到日常工作里,我发现它依然是最能打的备用选手。启动快、能开大文件、正则替换顺滑、插件生态够用,这几个特性加在一起,让程序员、测试、运维在批量改日志、写临时脚本、处理编码混乱文件时,第一个想到的还是它。这篇就把 Notepad++ 的下载、安装、高频操、插件玩法和常见坑记录下来,照着做十分钟能上手,老手也能补上几个平时没注意的参数。
2. 把 Notepad++ 装成趁手工具:安装、便携版与初始配置
2.1 标准版与便携版怎么选:我实际用下来的结论
先说结论:个人办公电脑用安装版,公司机器或 U 盘办公用便携版。安装版会写注册表、关联右键菜单,和系统集成度更高,例如双击.txt、.log、.ini文件时默认用 Notepad++ 打开,体验很顺。便携版是官方提供的 zip 包,解压到任意目录直接运行,不写注册表,适合没有管理员权限、或者经常换电脑、想把插件和配置一起带走的人。
两个版本的内核和插件支持完全一样,没有功能阉割。真正需要留意的是位数:当前官方 8.x 的安装包默认是 64 位,如果你前面装过 32 位旧版,升级之前最好先确认常用插件有没有 64 位版本。Python Script、NppExec、Compare 这些热门插件都有双架构版本,但个别冷门插件至今只出 32 位,装到 64 位里启动时会被禁用,处理办法是删掉 DLL 或者回退版本。
我这里再提一句便携版的使用细节:把整个解压目录放在一个固定的盘符路径下,不要放在桌面或 Download 文件夹里。因为便携版会在自己目录下生成plugins和配置文件,路径不稳定会导致插件丢失。更推荐的做法是单独建一个PortableApps目录,把解压后的 Notepad++ 文件夹放进去,然后右键发送快捷方式到桌面。
2.2 启动后的必要配置:字体、编码、会话与备份
装完先别急着写代码,把几个默认值改掉,能省下之后大量的翻车时间。打开“设置→首选项”,我一般按这个顺序过一遍:
第一,新建文件的编码改成 UTF-8。默认如果是 ANSI,粘贴中文再发给别人就很容易乱码。这个选项在“设置→首选项→新建文件→编码”里,选 UTF-8 而不是 UTF-8 BOM,BOM 会在文件开头塞三个隐藏字节,部分老脚本会把它认成非法字符。
第二,设置自动备份。Notepad++ 的备份机制不是像 Git 那样的版本管理,它做的事情是把当前文件复制到一个指定备份目录,间隔可以自己定。我把间隔设为 10 分钟,遇到突然断电、程序闪退,还能找回最多十分钟前的状态。
第三,自动完成。我习惯只在输入时显示函数参数提示,不勾“输入时显示”里的“单词”,因为写 Python 和 PHP 时单词提示比较吵,而且处理大文件时对性能有影响。熟手可以把自动完成全部关掉,让编辑器干净一点。
第四,选择主题和字体。在“设置→语言格式设置”里,我选深色主题,字体用 Consolas、字号 14,等宽字体在写代码和日志分析时对齐效果好。
下面这张表是我每次装完 Notepad++ 都要核对一遍的配置:
| 配置项 | 推荐值 | 理由 |
|---|---|---|
| 新建文件编码 | UTF-8 | 中文场景下最不容易出乱码 |
| 自动备份间隔 | 10 分钟 | 崩溃后可找回的损失最小 |
| 缩进宽度 | 4 空格 | 多数语言社区默认风格 |
| 自动完成 | 仅函数参数提示 | 手感和性能的平衡 |
| 主题 | 深色 | 个人偏好,看久了不刺眼 |
2.3 会话保存与多视图:日常多文件编辑的套路
Notepad++ 退出时会问是否保存会话,很多人无意识地点“否”,结果第二天打开发现昨天的一组文件标签全没了。其实可以在“设置→首选项→关闭”里设置退出时保存会话并恢复,这样工作现场不会因为软件崩溃或手滑关闭而丢失。
处理多文件时还有两个小功能很实用。一个是右键标签页选择“移动到其他视图”或“克隆到其他视图”,可以把两个文件上下或左右并排;搭配“视图→同步滚动”,对比两份结构相似的日志或配置文件非常顺手。
另一个是标签页的固定功能:右键标签页,选择“锁定标签页”,这个文件就不会被“关闭所有文档”误关。对于常驻的配置模板或参考文档,我一般都会锁住。到这里,基础环境已经比默认状态好用很多,接下来进入真正值钱的实操环节。
3. 高频操作实战:列编辑、宏录制与正则替换
3.1 列编辑模式:处理日志和表格的杀手锏
很多人在 Notepad++ 里处理 CSV 或对齐文本还在一个一个改,其实列编辑能同时操作多行的同一块矩形区域。举个例子,你拿到一份逗号分隔的 IP 和日期列表,想在每行行首插入一个序号,或者在每行末尾统一加一个逗号,用列编辑就是一次完成。
操作方式是:按住Alt,鼠标左键拖出一个竖着的矩形选区,这就是列选择。选好区域后按Alt+C,打开“列编辑”对话框,里面有“在每行开始插入文本”“在每行结尾插入文本”和“逐列插入数字”三个选项。比如选中行首位置,插入文本填#,每一行开头就同时多出这个符号;勾选“逐列插入数字”可以自动生成从 1 递增的序号,起始值可以自定。
只改变部分列时,可以先看清列边界,再做矩形选择。对于那种前后列是固定宽度、中间部分变长的文本,列编辑要先按Alt把区域拖出来,再用Alt+Shift+方向键扩展选区范围,边瞄着状态栏的行列坐标边微调。
这个方法在处理日志对齐、批量加引号、生成序号时,效率比手动改每一行高一个数量级。需要注意列编辑只管矩形范围,你框了哪几列它就在哪几列生效,不要把整行的内容一起替换掉。
3.2 宏录制:把重复手工操作压成一次按键
场景:你有一批文件,每个都需要做相同的处理:把 TAB 替换成逗号、去掉行尾空格、把文件末尾多余的空行删掉。手工做三遍就烦了,这种就该录成宏。
操作流程是:“宏→开始录制”,做完替换、删除等一系列手工动作,然后“宏→停止录制”,再点“保存当前录制的宏”,给它起个名字。之后在“宏”菜单里点一次就能原样放一遍。如果要在多个文件上执行同一套处理,给这个宏设置一个快捷键,切换文件后按一下即可。
默认情况下宏只能回放一次,需要批量处理时可以用“宏→回放”指定次数,或者通过快捷键手动逐个触发。宏录制的本质是记录操作序列,不包含分支判断,如果遇到文件结构不一致的内容,它照样会在不该替换的地方替换。复杂条件还是得靠后面的 Python Script 插件,宏适合解决机械重复、结构稳定的任务。
我自己的习惯是先把宏在单个文件上试跑一遍,确认输出符合预期,再放到文件夹里批量用。批量处理前最好先复制一份原文件到临时目录,宏没有事务概念,做错了只能手动改回去。
3.3 正则替换:回溯引用与多行匹配
Notepad++ 的查找对话框勾选“正则表达式”后,替换能力在全平台编辑器里都属于第一梯队。这里记几个最常用的例子。
把日期格式从2026-09-27改成27/09/2026:
查找:(\d{4})-(\d{2})-(\d{2}) 替换:$3/$2/$1$1、$2、$3分别对应第一、第二、第三个括号匹配到的内容。这是刚上手最值得记住的语法,回溯引用完成这种字段换序,比手工改每一行快得多。
另一个高频需求是删掉每行行尾的空格和制表符:
查找:[ \t]+$ 替换:(留空)注意,默认情况下正则里的.不匹配换行符。要跨行匹配时,把.换成[\s\S]。比如把连续的两个换行压缩成一个,查找\r\n\r\n替换成\r\n,这是踩过坑才会记住的细节。此外,Notepad++ 的正则默认是贪婪匹配,匹配到最长的一段;要最短匹配,在量词后面加问号,例如[\s\S]*?。
提示:正则替换是即时生效的,虽然大多可以通过撤销恢复,但一次匹配几万个结果时撤销也是对性能的考验。动手替换前先把原文件另存一份,大约花一秒钟,给自己留后悔药。
4. 插件生态与 Python Script:让编辑器真正自动化起来
4.1 插件管理器安装与 Python Script 环境配置
先讲一句血泪经验:在 Notepad++ 里做复杂文本处理,与其硬录宏,不如直接上 Python Script 插件。它把当前打开的文档暴露给一个 Python 运行时,你可以按自己的逻辑逐行处理文件内容,还能把结果写回编辑器窗口。
当前 8.x 版本已经内置插件管理器,路径是“插件→插件管理→显示插件管理”,搜索 Python Script,勾选安装,重启后生效。如果你用的版本在插件管理器里搜不到 Python Script,大概率是版本太新或通道不全,用 7.x 的稳定版更容易装上。
Python Script 的脚本存放目录在用户数据目录下,Windows 上一般是%APPDATA%\Notepad++\plugins\config\PythonScript\scripts,也可以通过插件菜单直接新建脚本,编辑器会打开一个新的.py文件。写完后保存,脚本就会出现在“插件→Python Script→脚本”的子菜单里,点一下执行。脚本目录建议定期备份,因为你的批量清洗逻辑都靠这部分,删了就得重写。
4.2 Python Script 入门:操作当前文档
Python Script 最常用的三个对象必须知道:
editor:代表当前文档的编辑器对象,可以读写全文、执行替换、选区操作;console:脚本日志窗口,用来打印调试信息;notepad:控制菜单、标签页的程序级对象,例如新建文件、关闭当前标签。
先看一个最典型的例子:给每行非空行加行号。
# 示例:给每行非空行加行号前缀 import re text = editor.getText() lines = text.splitlines() out = [] for i, line in enumerate(lines, 1): if line.strip(): out.append(f"{i}: {line}") else: out.append(line) editor.beginUndoAction() editor.setText('\n'.join(out)) editor.endUndoAction()逻辑说明:editor.getText()拿到当前文件全文,splitlines()按行拆分并自动消掉换行符的\r残留;enumerate(lines, 1)从 1 开始计数,line.strip()判断空行,非空行在开头拼接行号,最后通过setText一次性写回整个文档。
参数说明:beginUndoAction()与endUndoAction()是这套脚本里绝对不能省的两个包裹函数,它们把中间的一串操作合并成一个可撤销步骤。不包上去的话,脚本执行完会发现编辑器的“撤销”是灰色的,想反悔都没门。
执行脚本的入口是菜单里点脚本名,如果脚本要经常用,可以给它配上快捷键:在“设置→快捷键管理→插件”里找到脚本对应的命令项分配组合键。
4.3 完整案例:批量清洗日志文件
我做 Nginx 访问日志或应用安全日志时,经常要从每一行里提取 IP、时间、日志级别和消息,手工用正则替换只有清洗没有结构,用 Python Script 可以直接输出一张规整的表格。
# 示例:从日志行中提取 IP、时间、级别与消息 import re lines = editor.getText().splitlines() pattern = re.compile(r'^(\S+)\s+\[(\S+)\]\s+(\w+)\s+(.*)$') result = [] for line in lines: m = pattern.match(line) if m: ip, ts, level, msg = m.groups() result.append(f"{ts} | {level:>5} | {ip} | {msg}") console.clear() for r in result: console.write(r + '\n')逻辑说明:先用splitlines()统一换行风格,再用正则从每行提取四组字段;pattern.match(line)从头匹配,能匹配就拆成ip、ts、level、msg四段;{level:>5}是做右对齐,让 ERROR 和 INFO 在输出里整齐排列;最后输出到控制台。想直接生成新文件,可以把result列表通过setText写到notepad.new()新建的空文档里。
参数说明:\S+匹配不含空格的连续字符,\w+匹配日志级别,(.*)$匹配后续任意内容。如果日志格式变化,只需改这一行正则,脚本主体不用动。
到这里,Notepad++ 已经从一个文本编辑器变成了一个能跑批量处理脚本的平台。下面这部分是使用频率最高、遇到问题也最多的部分。
5. 常见问题与避坑:Notepad++ 使用中的几个真坑
5.1 打开大文件卡死或失去响应
现象:双击打开一个 2GB 的日志文件,界面卡了几秒到几十秒,甚至直接弹出“无响应”提示。
原因:Notepad++ 打开文件时会对内容做代码高亮、折叠分析、自动换行计算;文件越大、单行越长,预处理耗时越长。32 位版本还受内存空间限制,2GB 文件往往直接把内存吃满。
解决:先打开“设置→首选项→自动完成”,把与高亮相关的几个选项临时关闭,再打开大文件;程序本身优先选用 64 位版本,内存上限高一些。如果只是要搜索某个关键字,不要先打开文件,直接用“查找→在文件中查找”定位,输出到搜索结果窗口,再按需跳转打开。
5.2 中文乱码:编码不一致导致的玄学
现象:代码里的中文变成一串“锟斤拷”或问号,粘贴的中文也显示异常。
原因:文件本身是 GBK/ANSI 编码,而 Notepad++ 默认按 UTF-8 解码;或者新建文件时编码选的是 ANSI,写完后传输到另一台机器上被按 UTF-8 解码。
解决:打开文件后先在“编码”菜单里试“转为 UTF-8”,如果乱码反而加重,就选“使用 ANSI 编码重新打开”。多试几次能恢复。编码问题对新手来说确实是门玄学,最简单的应对策略是统一工作习惯:新建文件默认 UTF-8,保存前看状态栏编码标识,从别的系统拿来的文件先另存再编辑。
注意:如果文件里原本的编码信息和字符内容已被替换操作破坏,编码转换也救不回来,所以拿到外部文件先备份原版再处理。
5.3 插件版本不匹配导致启动失败
现象:启动 Notepad++ 时弹窗提示“加载插件失败”,插件菜单里找不到已经安装的插件。
原因:最常见的是插件 DLL 位数和主程序不匹配,比如把 32 位的插件 DLL 手动放进了 64 位的插件目录;另一种原因是旧插件没有跟上主程序的新版本接口。
解决:插件 DLL 必须放进正确架构的对应目录,64 位放安装目录下的plugins/x64,32 位放plugins根目录。用内置插件管理器安装的插件一般不会放错,手动复制 DLL 时最容易被坑。升级主版本之前,先把插件管理器里的所有插件升级一遍,再重启验证。
5.4 替换后无法撤销
现象:执行完一轮大范围正则替换后发现规则写错了,想撤销,但“撤销”按钮是灰的。
原因:部分插件脚本使用setText直接覆盖全文,没有把操作注册进撤销栈;宏录制如果没做合并,回放过程会被压成一整块,无法分步回退。
解决:Python Script 写回内容时一定用beginUndoAction()和endUndoAction()把操作包起来,让替换变成一个可撤销步骤;涉及批量替换前,一律先备份原文件。这不是产品缺陷,是插件机制的边界,理解了就不会在关键时刻陷入被动。
6. 进阶技巧:用 NppExec 搭一个轻量级脚本运行环境
6.1 用 NppExec 直接运行脚本文件
在插件管理器里装好 NppExec,打开“插件→NppExec→Execute”,输入下面这条命令:
# 在 NppExec 的 Execute 对话框里输入 python "$(FULL_CURRENT_PATH)"$(FULL_CURRENT_PATH)是 NppExec 内置变量,会自动替换成当前 Python 文件的完整路径,不用每次手输文件名。点执行后,控制台窗口会直接显示脚本输出。这样写 Python 时完全不用切出去开终端,改一下代码按一下快捷键就能看到结果。
对于 C++ 或 C# 这类需要编译的语言,也可以在这条命令基础上组合编译和执行:把编译命令和解执行命令分别存成两个 NppExec 脚本,先编译、再运行,错误信息直接对照输出行号点回源码位置。
6.2 给常用动作绑定快捷键并养成备份习惯
NppExec 保存过的命令可以从“插件→NppExec→Advanced Options”里添加为菜单项,然后在“设置→快捷键管理→插件”中为它分配一个顺手组合键,例如Ctrl+Shift+B跑当前脚本、Ctrl+Shift+E打开 Execute 面板。
最后一件事,也是我吃过亏才养成的习惯:Notepad++ 的所有配置文件、会话快照、自定义宏与插件脚本,都集中在%APPDATA%\Notepad++目录下。重装系统或者换电脑时,把这个目录整个复制出来,装好新版本后放回原路径,曾经的高亮方案、快捷键、宏脚本就全部回来了。那一次我忘备份,十几个写了半年的清理脚本全丢了,从那以后我每次对 Notepad++ 做大改动,都强制走一遍“复制配置文件到网盘”的动作。可惜没有后悔药,希望这篇笔记能帮你少踩我踩过的坑。
本文还有配套的精品资源,点击获取