☰
Notepad++ 不只是记事本:从编辑器到轻量编程工作台
2026/9/29 6:21:15 网站建设 项目流程

简介:Notepad++是一款广受程序员欢迎的免费源代码编辑器,这份资源提供完整绿色化软件包及配套文件,面向需要在Windows下进行日常代码编写、文本处理或替代系统记事本的开发者与办公用户。资源共包含392个文件,主体由exe/dll核心程序、xml/ini配置、html/css界面与帮助文档、png/gif图标等构成,rar压缩包仅4.56MB,解压即可使用,便于携带和离线部署。软件自带语法高亮、自动缩进、代码折叠、多文档编辑、正则搜索替换、宏录制以及FTP/SFTP远程文件编辑等常用能力,支持通过插件扩展调试、格式化与版本控制功能,可满足从入门到进阶的编码需求。已有1084人学习下载,特别适合追求轻量、高效、可高度定制的编程环境用户,解压后即可直接运行,无需额外安装依赖,配合主题与快捷键自定义,能显著提升日常开发和文件处理效率。

1. Notepad++ 算不算编程软件:先看真需求,再看工具定位

不少人问,Notepad++ 算编程软件吗?我的答复是:它不是 IDE,也不是编译器,但它是我电脑上待机时间最长的编程相关工具。你写 C++ 时,打开 Visual Studio 是正规军;可当你只想改一个 AB PLC 导出的 XML、把一个 LabVIEW 程序里多个相同测试工位的参数批量替换,再顺手核对一段日志里的时间戳,启动那种带编译器的重型 IDE,就像开一辆满载集装箱的卡车去取一件快递。

Notepad++ 轻、快、支持免安装,语法高亮、多标签、正则替换、插件化都齐全。写 C、C++、Python 的代码草稿完全能顶上去,真正编译交给外部工具链,它负责把“改代码、跑命令、看输出”串成一条流水线。就算现在 AI 编程软件很火,AI 生成的代码也总得有个地方贴进去、检查、再改。先想明白它是“编辑器加工作台”,不是“编译器全家桶”,后面很多坑就不会踩。这篇就给还把它当记事本的你讲清楚怎么用,也说清楚哪些事不该指望它。

2. 装一个干净 Notepad++:官网下载、winget 和三处初始化设置

做工程的人最怕装到一个带捆绑的 Notepad++。搜 notepad++ 官网下载,前面几条很可能是各类“软件站”的推广位,装完多出好几个浏览器组件,比编辑器本身还勤快。我一般只认两个来源:一是官网的安装包或便携 zip,二是 Windows 自带的 winget 包管理器。

2.1 从官网或 winget 安装:为什么别从软件站拿安装包

官网提供的安装包和便携版是同一套代码,区别只在注册表、右键菜单和配置目录。用官网安装包时,安装向导会问要不要关联文件类型、要不要装到当前用户目录,这一步建议全部默认,后面好维护。要是电脑上已经有旧版,安装新版会直接覆盖同目录文件,不会留两个版本干架。

如果你用的是 Win10 较新版本或 Win11,用 winget 更方便,直接在终端里执行:

winget install --id Notepad++.Notepad++ -e --source winget

这条命令里,--id指定要装的包名;-e表示精确匹配,避免装错同名软件;--source winget则限定只从 winget 官方源拉取。装完通常会自动注册右键菜单和文件关联,不需要再手动配置。

我不太建议去第三方“软件站”下载的原因很简单:你无法确认安装包里有没有被塞进推广软件。Notepad++ 本身干净,但它的安装包被替换过的情况不是没有。拿官方渠道多花两分钟,省掉后面卸载全家桶的时间,这笔账很划算。

2.2 首次打开三处初始化设置:编码、行尾和缩进

装完不是马上写代码,先花三分钟把首选项调好,后面能少踩一半坑。

第一处是编码。打开“设置 -> 首选项 -> 新建”,在“编码”里选“UTF-8 无 BOM”。Notepad++ 默认新建文件可能是 ANSI,写中文注释时最容易出乱码;改成 UTF-8 无 BOM 后,和 VS Code、LabVIEW、主流编译器的默认编码能做到一致,尤其是 C/C++ 工程在 CI 服务器上编译时,乱码概率会小很多。

第二处是行尾。Windows 下统一使用“CRLF”。在“编辑 -> 行尾转换”里选“Windows (CRLF)”。如果你经常要提交代码到 Linux 服务器或嵌入式环境,格式一般会用“LF”,具体看项目里.gitattributes怎么定的。判断方法很简单:看 Notepad++ 右下角状态栏,那里会显示当前文件是 CRLF 还是 LF。

第三处是缩进。在“设置 -> 首选项 -> 编辑”里,把“制表符宽度”设成 4,并勾选“替换为空格”。Python 写多了的人会特别在意这个,PEP 8 默认推荐 4 空格;C/C++ 工程多半也认 4 空格。这时再打开“自动缩进”,每次回车后光标会自动落在对齐位置,不用手工敲空格。

这三处设置都会写进config.xml,属于 Notepad++ 的全局配置。之后重装系统,只要把配置目录备份出来,就能恢复到原来的手感。

2.3 便携版与插件目录:维护工作台的后悔药

Notepad++ 的一大好处是非安装也可用。官网右下角有“Portable”下载,解压后就是一个文件夹,里面是notepad++.exe、plugins、userDefineLang.xml这些文件。放到 U 盘或网盘里,到哪台 Windows 机器都能直接开。

普通安装版的插件和配置默认放在用户目录,和程序安装目录分开。查看路径可以用命令:

dir "%APPDATA%\Notepad++\plugins" dir "%APPDATA%\Notepad++\backup"

%APPDATA%\Notepad++\plugins里放的是用户安装的插件,backup目录是 Notepad++ 自动备份的当前编辑文件。我一般把整个%APPDATA%\Notepad++文件夹拷贝到自己的工作盘里当备份,换电脑时直接放回去,插件配置和主题就全回来了。

便携版则把这些配置直接放在主目录下的portable相关配置文件里,适合不想往系统盘写文件的场景。注意便携版和安装版尽量不要同时用同一份配置目录,两个实例同时打开同一个config.xml会被写乱。

安装插件时,新版本推荐用“插件”菜单里的“插件管理”搜插件安装,它会自动判断 64 位还是 32 位,不用手动下载 dll。手动下载的插件要确认和 Notepad++ 位数一致,否则加载时会报错,这个问题我在避坑章再展开。

3. 在 Notepad++ 里写 C/C++ 和 Python:用 NppExec 把编辑器变成轻量开发环境

很多人用 Notepad++ 写代码,写完才发现它不能运行。这不是软件的锅,Notepad++ 的目标是编辑,不是编译。想让 C、C++、Python 脚本在该软件里直接跑,常见做法是加一个 NppExec 插件,把外部解释器或编译器接到编辑器上,等于给它装上一条可控的命令行。

3.1 为什么偏偏用 NppExec

从编程软件的角度看,编辑器要能编译运行才有闭环。NppExec 是 Notepad++ 生态里最常用的执行插件,它嵌入一个控制台窗口,能执行本机命令、捕获输出、读回错误信息。你写的printf、System.out.println和 Python 的print输出都能直接落在插件控制台里。

NppExec 不是编译器,它只是个壳。C/C++ 需要先装 MinGW-w64 或 MSVC 工具链;Python 需要系统里已经有python解释器。装完后先在命令行里确认一下:

where python where gcc where g++

where的作用和 Linux 的which一样,用来查命令能不能被找到。只要这几条能把路径列出来,说明解释器和编译器已经在 PATH 环境变量里,NppExec 才能顺利调用。如果提示“找不到”,就要先修 PATH,而不是去 Notepad++ 里瞎调。

3.2 用 F6 跑 Python:最小 NppExec 脚本

确认 Python 能用后,在 Notepad++ 里打开一个.py文件,按F6键,会弹出 NppExec 的“执行”对话框。把下面这段填进去:

npp_save cd "$(CURRENT_DIRECTORY)" python "$(FULL_CURRENT_PATH)"

这三行为什么要拆开,展开说一下。第一行npp_save是让 Notepad++ 先把当前文件保存,这样你按 F6 时,永远跑的是硬盘上的最新内容,不会出现“刚改的代码没生效”的疑问。第二行cd "$(CURRENT_DIRECTORY)"把插件控制台的当前目录切到文件所在目录,Python 里的相对路径读写才会符合直觉。第三行调用 Python 运行绝对路径下的当前文件,$(FULL_CURRENT_PATH)是 NppExec 自带变量,等于当前文件的完整路径。

在“执行”对话框的输入框里填完这段后,先不要点确定,右侧有个“保存”按钮,把它存成一个命令,比如叫py_run。以后在“插件 -> NppExec -> 执行”里随时能重新调出来,也可以给它绑快捷键;我一般绑成Ctrl+Shift+F6,不会和系统默认的 F6 冲突。

写一段最小测试代码,验证整个链路:

import sys print("hello from notepad++") print(sys.version_info[:3])

按Ctrl+Shift+F6,缓存区最下方会出现控制台输出。如果出现编码报错,多半是 Windows 控制台代码页问题,把文件编码和新建默认编码统一成 UTF-8,通常就能解决。

3.3 编译并运行 C/C++:一条命令完成三件事

Python 是解释执行,C/C++ 需要先编译再跑。同样的思路也能在 NppExec 里写,只是要多加编译这一步。下面是 GNU 工具链的示例,前提是已经装了 MinGW-w64 并把它加进 PATH:

npp_save cd "$(CURRENT_DIRECTORY)" gcc -Wall -Wextra -g "$(FILE_NAME)" -o "$(NAME_PART).exe" if exist "$(NAME_PART).exe" "$(NAME_PART).exe"

gcc后面的-Wall -Wextra是打开常见和额外的警告,-g生成调试信息,这几项几乎是模板标配。"$(FILE_NAME)"是当前文件名,"$(NAME_PART).exe"是把文件名去掉扩展名后拼出的输出文件名。最后一行用了if exist,意思是只有生成出了 exe 才执行它。这样编译失败时不会误跑到上一次的旧程序,这是很多人最容易踩的坑。

如果是 C++,把命令换成:

npp_save cd "$(CURRENT_DIRECTORY)" g++ -std=c++17 -Wall -Wextra -g "$(FILE_NAME)" -o "$(NAME_PART).exe" if exist "$(NAME_PART).exe" ( "$(NAME_PART).exe" ) else ( echo 编译失败,请看上方日志 )

这里的-std=c++17指定语言标准。很多老教程不写这个,编译器会用它自己的默认标准,导致某些新语法编译不过。工程里如果要求 C++11 或 C++20,直接把 17 改成 11 或 20 即可。

运行后,编译器和程序自己的输出都堆在 NppExec 控制台里。程序跑完没有回到提示符,可以再点一下控制台右上方的“关闭”或按Esc;我习惯在脚本末尾加一行cmd /c pause,让程序停住看输出,但这样在无界面环境会卡住,所以一般只在小范围试代码时用。

4. 常用插件与真实场景:从 AB PLC 的 L5X 到多工位配置批量改

Notepad++ 之所以能撑起“编程软件”这个名头,很大程度靠插件。插件不是越多越好,装五个常用的,把每个用熟,已经能覆盖我工作里九成以上需求。

4.1 高频插件与选型理由

新版本插件管理里直接能装到位的,我长期保留这几个:

插件用途什么时候用
Compare文件对比两个配置文件、两份 PLC 导出文件、改前改后的备份比对
XML ToolsXML 格式化、校验打开 L5X、SVG、工程配置文件
JSON ViewerJSON 格式化和 REST API 调试、AI 编程软件生成的 JSON 打交道
Explorer文件树在项目目录里跨文件切来切去,替代系统文件管理器
NppExec执行命令编译运行 Python、C/C++,接外部工具链

Compare 我用的频率最高。工程项目里最怕“明明只改了一行参数,现场行为却大变样”,这时候把改动前后的两份配置扔进两个标签,执行 Compare,差异直接标出来。它支持忽略大小写、忽略空白,配上正则过滤能很快定位真正变化的行。

XML Tools 则主打格式化。Notepad++ 打开一个没有换行的 XML,整份文件只有长长的一行,点一下 XML Tools 里的“Pretty print”,可读性立刻正常。它还能做语法校验,避免改完标签后连解析都过不了。

4.2 在 AB PLC 的 L5X 导出文件里快速定位:XML 与正则

如果你做自动化产线,和 AB PLC 的编程软件打交道时,经常会碰到.L5X这类导出文件。它的本质是 XML,内容很长,靠肉眼翻很难受。用 Notepad++ 打开后,我一般先用 XML Tools 格式化,再用“查找”窗口做正则搜索。

比如要找所有控制器标签,可以搜:

Name="[^"]*"

勾选“查找”对话框里的“正则表达式”,再点“全部查找”,所有匹配会列在下方搜索结果面板里,双击任意一行就能跳到文件的对应位置。[^"]*在正则里表示“零个或多个非双引号字符”,这比直接搜Name=更准确,不会把别的同名属性也卷进来。

如果需要把一批标签名批量改名,或者从某个导出文件里提取地址清单,直接按Ctrl+H打开替换对话框。替换前一定先备份原文件,因为 Notepad++ 的“撤销”对大数据量替换有时会迟钝,手一抖改错了就不好回退。

4.3 多工位参数批量替换:列编辑和正则的实战

做测试工位的同学应该很熟一句话:同一个 LabVIEW 程序要管多个相同测试工位。多工位共用一个框架,配置往往落在外部 INI、XML 或 CSV 里。用 Notepad++ 打开这类配置文件,最常干的事就是把“工位 1”复制成“工位 2”“工位 3”的参数条目。

比如一份简单的 INI:

[Station_1] Channel_A1 = 0 Channel_A2 = 0 Channel_B1 = 0

现在要新增工位 2,先把整个[Station_1]块复制一份,改成[Station_2],再把块内Channel_A1这类键全都改一遍。当工位数量到十几个时,逐行改会改到眼花。更稳的做法是使用正则替换:

查找内容:

^Channel_A

替换为:

Channel_B

再把“查找模式”选成“正则表达式”,点击“全部替换”。这里的^是正则里的行首锚点,表示只匹配行首的Channel_A,不会误伤中间出现的同名子串。替换成Channel_B,等于把一组通道整体换名字。

这只是最简单的一种。更常用的是把A1编号改掉,例如把Channel_A1全部替换成Channel_A2,只影响后面数字,不能用普通查找,得这样写:

查找内容:

Channel_A(\d+)

替换为:

Channel_A2

括号会把匹配到的数字捕获下来,但这里我没用$1引用它,所以结果是把所有 A 通道统一变成 A2;要保留原编号则写Channel_[$1]之类。你可能会问,这和列编辑有什么关系?当工位编号是统一模式时,直接用Alt+鼠标拖拽选中一列数字,一次性输入新数字,效率更高。列编辑适合固定列宽,正则适合变化规则相对复杂的场景,两者互为补充。

5. 避坑:Notepad++ 的 5 个高频翻车现场与排查路径

任何工具用久了都会踩坑。下面 5 条是我这些年遇到最多的问题,按“现象、原因、解决”整理出来。

5.1 打开中文文件变乱码

现象:双击打开一个 UTF-8 编码的文件,中文注释全是“锟斤拷”之类乱码,或者打开后保存,再打开就变问号。

原因:文件原本是 UTF-8,Notepad++ 用 ANSI 默认编码去解析,或者新建文件时默认编码不是 UTF-8,保存时又被写成了其他编码。老版本 6.x 时代这个问题尤其常见,新版本默认好了很多,但老配置目录里仍可能残留错误设置。

解决:在“编码”菜单里点“转为 UTF-8 编码”或“转为 UTF-8 编码(无 BOM)”,不要直接点“使用 UTF-8 编码”,否则下次打开依旧按默认错误方式解析。同时把新建默认编码改成 UTF-8 无 BOM,位置在“设置 -> 首选项 -> 新建”。改完再打开文件,标题栏底部会显示当前编码,见状态栏确认一下。

5.2 行尾 LF 和 CRLF 混用,脚本和工程里报错

现象:从 Linux 服务器上拉下来的.sh脚本,在 Notepad++ 改完保存后,执行时报$'\r': command not found;反过来,Windows 的.bat文件被保存成 LF 后,批处理运行逻辑变得奇怪。

原因:Windows 默认行尾是 CRLF,Unix/Linux 是 LF。Notepad++ 右下角会显示当前行尾风格,但如果你不留意,它保存时会用新建文件默认设置,导致混用。有的工程用.gitattributes强制统一,但本地工具没配合时依然翻车。

解决:打开文件后,先在“编辑 -> 行尾转换”里选当前目标系统对应的格式。写 Python 还好,写 shell 脚本和批处理时必须严格区分。如果工程明确要求 LF,干脆把“设置 -> 首选项 -> 新建”里的默认行尾统一改掉,从源头消除问题。

5.3 NppExec 找不到 python/gcc,但终端里明明有

现象:在命令行里输入python --version能正常显示版本,但 NppExec 控制台运行同样的命令却提示“不是内部或外部命令”。

原因:终端里能用,很可能是你当前那个终端窗口临时设置过 PATH,或者用 Anaconda Prompt 这类工具激活了环境。Notepad++ 本身读取的是系统持久化的 PATH,不会继承你那个终端 Shell 里的临时变量。另一个常见原因是 64 位 Notepad++ 配了 32 位工具链,路径没对上。

解决:在系统环境变量里把编译器目录写死,不要只在终端里临时set PATH=...。如果嫌改系统变量麻烦,直接在 NppExec 脚本用绝对路径:

cd "$(CURRENT_DIRECTORY)" "C:\MinGW\bin\gcc.exe" "$(FILE_NAME)" -o "$(NAME_PART).exe"

这种写法可移植性差,换台机器就得改,但临时排查很有效。等确认路径正确,再回到系统 PATH 里持久配置。

5.4 插件装一堆,启动变慢甚至崩溃

现象:Notepad++ 启动要好几秒,或者打开某个文件时直接弹“插件无法加载”,严重时程序闪退。

原因:插件目录里混入了版本不匹配的 dll。Notepad++ 8.x 是 64 位为主,旧插件可能是 32 位,加载时就会报错。还有的老插件用户手滑把整个插件文件夹复制进去,里面还带着自身的不完整依赖,启动时全部初始化,自然慢。

解决:优先用“插件 -> 插件管理”安装,它会检查位数和兼容性。手动安装的插件放到%APPDATA%\Notepad++\plugins各自独立子目录里,不要直接堆在根目录。启动慢的可以把不常用插件的“加载”关闭,或直接从插件管理里卸载。系统里同时有多个 Notepad++ 配置目录时,也可能加载到旧插件,检查一下config.xml里插件的启停状态。

5.5 下载来源不干净,电脑被塞进一堆推广

现象:装完 Notepad++ 后,浏览器主页变了,桌面多了几个“看图王”“PDF 阅读器”,甚至开机自动弹出广告。

原因:这通常是一开始就没走官方渠道,下载的是被二次打包的安装程序。这类安装包常用“高速下载”按钮诱导,实际下载的是第三方下载器。

解决:第一步是卸载可疑安装包,并重置浏览器主页。第二步是删除已经被替换的 Notepad++ 安装目录,重新从官网或 winget 安装。以后固定一个安装来源,不要每次换位置。安全软件提示异常时,别急着关掉,先看看报警对象是不是在系统临时目录里。

6. 进阶:把宏、NppExec 脚本和快捷键固化成自己的工作台

前面这些配置都做完了,Notepad++ 还只是“好用”。真正让它成为工作台的,是把重复动作固化成快捷键。比如我每天要处理的日志和配置,有一类固定操作:按时间戳给日志分行、去掉空行、把2025-04-01 10:00:00这种格式统一成 ISO 样式。手工做很枯燥,用 Notepad++ 的宏一次能录完。

录制宏的过程很简单:菜单“宏 -> 开始录制”,然后执行替换、格式化操作;操作完成后点“停止录制”,把这段宏保存下来,再进“宏 -> 修改快捷键”给它绑一个全局快捷键。以后按一下键,这一连串替换全部重放。这里有个细节,宏录制的是“按键序列”,不是“文件内容”,所以换另一个文件同样能跑,只要字段结构一致就不会错。

NppExec 脚本同样可以作为菜单项固化。回到第 3 章那段 Python 执行脚本,在“插件 -> NppExec -> 执行”里点保存后,会出现在“NppExec -> 脚本”子菜单中。再到“设置 -> 快捷方式”,找到对应脚本,分配一个类似Ctrl+Shift+E的快捷键。这样等于给编辑器加了“编译并运行”按钮,按一下跑当前文件,按两下跑带参数的任务。

我更常用的进阶操作是把几个 NppExec 脚本串起来。比如一个脚本负责编译,一个脚本负责跑测试用例,中间用&&连接,只有编译成功才进入测试环节。这个风格和 CI 流水线一致,能在编辑器里提前暴露问题。

回看这些年,我最后悔的事不是用了重编辑器,而是在环境切换时忘了把 Notepad++ 配置和插件带走。现在每到一个新环境,第一件事就是把便携版放好、快捷键恢复、插件装到常用五个。这样我不用重新适应工具,工具反而在适应我。希望这套操作对你也有用,装好后按着上面的步骤试一遍,多数坑当天就能排干净。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询