资讯动态

Notepad++高效使用指南:编码处理与正则表达式实战技巧

发布时间:2026/9/18 16:13:16 来源:尧图企业网站定制
写一篇关于Notepad使用技巧的博文。这篇文章的目标是把一个大家电脑里可能早就装了的“小工具”真正用出效率来。全文约7000字从安装、编码、正则、插件到性能调优按我这些年实际用下来的经验顺序来讲。1. 先把它装好从下载到初始配置很多人电脑里的Notepad还是两三年前的旧版本甚至是从各种“下载站”里装来的捆绑版。这里先把这个基础问题解决掉因为后面的所有技巧都建立在“你装的是一个干净版本”这个前提上。1.1 官方渠道与安装过程Notepad的官方网站看起来比较朴素访问时注意辨别。下载页会提供标准安装包和便携版两种形态。标准安装包带安装向导会写入注册表右键菜单集成等功能开箱即用适合大多数桌面用户。便携版Portable一个压缩包解压就能运行不会写注册表。适合装在U盘里或者给那种“不想动不动就让系统里多一堆服务项”的人用。我的建议是普通用户直接装标准版开发者和运维人员更推荐便携版。因为便携版不会和历史配置文件冲突你甚至可以同时维护两套“便携版Notepad”——一套日常办公一套专门挂载测试用的插件互不干扰。下载后安装时有几个值得注意的勾选项如果你用不上“在右键菜单中显示‘Edit with Notepad’”可以取消勾选右键菜单会清爽不少。安装路径建议改出C盘比如D:\Tools\Notepad。这是多年来的习惯——重装系统后整个目录还在配置不会丢。安装完成后先别急着用打开“设置 首选项”把“备份”那一栏调整一下后面会细说。1.2 版本选择与升级策略Notepad一直在活跃更新发布节奏比较快。有些旧教程提的长路径关联等问题在新版本里已经处理得很好了。版本上分两条线稳定版Release下载页默认给的就是这类功能经过充分测试适合日常使用。RC版 / 开发版Release Candidate / Nightly会先上一些新实验特性比如对某些编程语言语法的高亮优化、新的书签管理交互等。风险是有潜在的不稳定问题偶尔会遇到崩溃或插件不兼容。工作环境里优先用稳定版。我的升级节奏是看到稳定版更新日志里出现“修复了XXX编码环境的显示问题”或者“增强了对XXXX语言的支持”才会主动去升级。不为追新而追新文本编辑器最重要的品质是“稳”。1.3 安装后的第一轮配置装完之后我强烈建议先花三分钟做这几项配置这一轮配置决定了你后续是否会在使用中反复踩坑。字体与主题设置 语言格式设置。深色主题看久了确实没那么刺眼但对某些浅色代码高亮主题来说暗色背景下关键字对比度反而会下降这需要按个人习惯调。字体方面中文环境建议保留默认字体代码推荐用等宽字体比如Consolas或JetBrains Mono。自动换行视图 自动换行。默认是关闭的要查看超长行时临时点一下“显示符号 显示行尾”可以更直观看到换行位置。日常编辑尽量关掉自动换行保持一行的原始结构特别是处理配置文件和代码时。文档切换方式设置 首选项 常规把“标签栏”的关闭按钮设为“激活的标签”上。再多标签开十几个的时候鼠标不用移很远就能关掉当前页。这一轮配置完成之后你可以把这个干净的Notepad视作一块“白板”——后面所有的技巧都是往这块白板上一点一点加功能。2. 编辑核心技巧日常提效的关键操作Notepad能在记事本和重型IDE之间站住脚靠的不是界面华丽而是它内置的这一套高效的文本编辑机制。这一部分我按“日常用得最多”的顺序来梳理。2.1 多光标编辑与列模式这是我在给人推荐Notepad时第一个演示的功能。多光标可以让多行内容被同时编辑列模式则让代码注释对齐、表格补空格这类操作变得极其轻松。列模式按住Alt键然后用鼠标竖向拖选。你会发现光标出现在每一行相同的位置上可以一次性输入或删除多列的字符。多光标按住Ctrl在多个不同的行尾或任意位置分别单击就能创建多个光标输入一个字符所有光标处同步生效。矩形选取实际就是列模式的选择状态选中的区域是一个矩形块而不是连续的行文本。用于批量给一段配置加前缀或去掉前缀非常好用。举个实际场景有几十行配置文件每行前面都要加一个server_前缀。如果一行行去改费时且容易漏。用列模式按住Alt竖向拉到这几十行光标自动落在每行的行首直接敲入server_一次性全部搞定。2.2 书签、折叠与标记把书签功能理解成“给位置加备注”就很直观。在某一行按下CtrlF2这一行会以特殊颜色高亮同时左侧边距出现一个蓝色圆点。这就是书签。配合F2和ShiftF2可以在所有书签之间向前/向后跳转。如果打开了一个几千行的日志文件你不确定刚才检查到哪一行用CtrlF2把关键行标上书签缩到侧边看圆点分布就能一眼定位。代码折叠的快捷键是Alt0折叠全部和AltShift0展开全部。在阅读一份几千行的源码时先把所有函数块折叠起来只看函数签名和注释阅读效率会提升不少。“标记”这个功能也被低估了每一个被选中的相同文本默认会以浅蓝色高亮。比如你在看一份HTML把所有div标签标记出来结构一目了然。遇到大日志找重复的报错行时标记也远比肉眼逐个看高效。2.3 查找替换的进阶用法CtrlF打开查找窗口大家都用过但这个窗口里藏了不少真正提效的东西。查找范围默认是当前文档但你可以在“查找模式”旁把查找范围切换成“所有打开的文档”甚至指定一个目录做递归查找。这在重构项目时很有用——不用傻傻地一个个文件打开找。反向查找查找窗口右侧有个小箭头可以切换查找方向。当光标停留在文件中部时想向上找上一个匹配项就不必把光标拉回顶部从头查了。统计与列表勾选“统计”可以看到当前关键字在文档中出现的总次数勾选“在文件中查找”可以把所有匹配项及其所在行号列出来点击就能跳转。这一个窗口解决了绝大多数“它在哪、出现了几次、上下文是什么”的问题。替换功能里有个容易忽略的细节替换行为是可以精细控制的。比如“全部替换”默认会替换掉包含匹配在内的所有内容如果你只想要精确匹配整词需要勾选“全词匹配”。日常处理中我用的最多的组合是正则表达式 全词匹配既能精准替换又不会误伤包含子串的其他单词。2.4 宏录制与批量操作宏是本篇里最像“编程”的功能。它本质上就是把你的手动操作录制下来然后在需要的地方回放。录制宏的入口在“宏 开始录制”。录完之后可以给这段宏设置快捷键也可以把多段宏保存到一个宏集合里反复调用。我举一个自己在项目里常用的例子把格式很乱的历史数据整理成标准CSV。原始数据大概是这种姓名:张三 城市:北京 分数:87 姓名:李四 城市:上海 分数:92手动去把每一条改成张三,北京,87的样子。如果有一百条手改就会非常枯燥。用宏录制一次处理流程光标定位在行首。CtrlH打开替换窗口把姓名:替换成姓名,不替换城市和分数标记替换成逗号。替换完按回车确认。关掉替换窗口光标自动跳到下一行行首。然后停止录制对后续每一行执行“宏 回放”即可。注意替换时如果同一个文档里别处也有“姓名:”字样录制宏时输入数据要带上完整上下文避免误伤其他部分。宏的好用之处在于你不用写一行代码就能批量完成复杂操作。它的上限取决于你的想象力和对编辑器操作的熟悉度遇到重复性的文本整理任务时先停下来想想“能不能录个宏”是值得养成的习惯。3. 编码处理彻底告别乱码不管你是程序员还是普通办公用户总会在某个时刻遇到“打开一个文件满屏方块/问号”的情况这就是编码问题。Notepad在这一点上做得非常直观它把原本需要命令行工具才能看的编码信息直接暴露在了界面右下角。3.1 查看与切换编码状态栏右下角显示的比如UTF-8、ANSI或GB2312就是当前文件的编码格式。通过“编码”菜单可以在“转为UTF-8编码”和“使用ANSI编码”等选项间切换。如果打开一个中文文件显示乱码首先在“编码”菜单里试着换成其他常用编码通常在“中文”相关的子菜单里能找到正解比如GB2312或BIG5。这里有个关键概念要区分清楚“使用xxx编码”和“转为xxx编码”是两个不同的动作。使用仅改变阅读该文件时采用的编码解释方式不会修改文件本身的字节内容。用于解决“文件没坏只是解释错了”的情况。转为会把当前内容以目标编码重新编码并写入文件。通常用于把一份GBK编码的文件转换存储为UTF-8以适配跨平台使用。3.2 BOM的坑UTF-8编码有两种存在形式带BOM和不带BOM。BOMByte Order Mark是文件开头的几个特殊字节用于标记文件的字节序和编码类型。记事本Windows自带那个保存UTF-8文件时默认会加BOM。而绝大多数Linux工具、部分Web服务器在解析文件时对BOM的处理没那么宽容。一个带BOM的HTML文件可能在页面顶部多出一个换行或一个奇怪的字符。Notepad处理这个问题很方便编码 转为UTF-8编码不带BOM。如果你经常写前端代码、Python脚本或者维护一些跨平台的配置文件务必养成“不带BOM”的习惯。3.3 批量转换编码如果你拿到一个目录里面有几十个GBK编码的旧文件想统一转成UTF-8一个个打开再另存就显得太落后了。这个时候可以这样操作文件 打开选中所有这些文件可以多选。Notepad会为每个文件打开一个标签页。全选所有标签用CtrlTab逐个切过去也行但如果文件太多更建议用“窗口 关闭所有文档”前先处理。对第一个文件编码 转为UTF-8编码不带BOM然后保存。这步操作本身只作用于当前文件。对其他文件重复。太多的时候可以考虑用Python脚本配合Notepad插件后续介绍或者干脆用命令行工具做批量转换。注意一点千万别在未转换前就对多个文件执行“全部关闭并保存”那样会把所有文件原样保存回去白白浪费时间。4. 正则表达式让高级查找与替换成为习惯普通用户看到^、$、\d这种符号第一反应可能是“这不是程序员才用的东西吗”。但实际上正则表达式并不要求你会编程你只需要理解几个基础符号的含义就能让Notepad做很多原本需要手动改几百遍的事情。4.1 入门级的几个符号^匹配一行的开头$匹配一行的结尾.匹配任意一个字符不含换行符*匹配前面的字符0次或多次匹配前面的字符1次或多次\d匹配任意数字\s匹配空白字符空格、Tab等用这组基础符号已经能解决大多数文本整理需求了。比如找到所有以数字开头的行^\d找到所有包含时间戳的日志行\d{4}-\d{2}-\d{2}大括号表示前面的字符重复次数找到所有行尾有多余空格的行$4.2 捕获分组与反向引用捕获分组是正则里很有用、但初学容易忽略的概念。简单来说用圆括号括起来的部分会被“记住”在替换时可以用$1、$2这种记号引用回来。举个例子你想把2024-05-01这种日期格式统一改成01/05/2024。在Notepad的替换窗口里这样配置查找目标(\d{4})-(\d{2})-(\d{2})替换为$3/$2/$1这个表达式拆开看(\d{4})匹配四位年份记为$1-匹配日期里的横杠(\d{2})匹配两位月份记为$2-又一个横杠(\d{2})匹配两位日期记为$3所以$3/$2/$1就是把“日/月/年”的顺序替换出来达到格式调整的目的。这个操作理解之后你会发现它能应用于大量“提取并重组文本”的场景。4.3 在日志分析中清理数据处理服务端日志是正则替换的高频使用场景。比如日志里有大量这种内容2024-05-01 10:23:45 INFO Request from 192.168.1.1 to /api/user 2024-05-01 10:23:46 WARN Request from 192.168.1.5 to /api/order你只关心IP和路径可以这样提取查找目标.*Request from (\d\.\d\.\d\.\d) to (\S).*替换为$1 - $2替换后每一行就压缩成了192.168.1.1 - /api/user信息密度瞬间提高。当然这也可以用其他命令行工具做但Notepad的优势是你不需要把日志文件拷到服务器上就能边看边处理所见即所得。4.4 正则查找模式下常见踩坑点号不匹配换行默认.不会匹配换行符。要匹配跨行内容需要把“匹配换行符”选项勾上或改用[\s\S]*这种写法。贪婪模式*是贪婪的会尽量匹配更多字符。如果你希望匹配到第一个符合条件的字符就停下来需要加?写成.*?。比如p.*?/p才能逐个提取段落内容而不是从第一个p一路吞到最后一个/p。替换时$的处理在替换文本里$本身是特殊字符如果要替换成美元符号需要写为$$或使用反斜杠转义依版本有所不同。如果替换结果里出现了奇怪的$1而不是你想要的原文说明捕获分组的编号没对。正则和宏一样越用越能体会到“编辑器也是生产力工具”这句话的真实含义。5. 插件体系把Notepad变成半定制工具Notepad的插件机制是它能从“记事本替代品”成长为“小型开发工具”的核心原因。通过插件管理器可以按需安装几十种扩展功能但依然保持轻量。5.1 插件安装路径与方式新版本内置了“插件管理”功能直接在“插件 Plugins Admin”里搜索并勾选安装即可。也可以在官方插件仓库或可信来源手动下载.dll文件放入Notepad安装目录下的plugins文件夹中重启后生效。安装后留意插件对Notepad版本的要求有些老插件在新版里会失效。如果某个插件装上后导致启动异常可以在安全模式下排查。5.2 我常用的几个插件Compare目录或文件对比工具。选中两个文件执行“插件 Compare Compare”两个文件会并排显示差异行会有颜色标注。这在“发现自己改过的代码和网上参考代码不一致”的时候非常有用能快速定位谁多了谁少了。MIME Tools做Base64编码/解码、URL编码/解码等操作。处理接口调试、解密报文片段时选中文本直接转换不用再把字段复制到网页工具里来回倒腾。Python Script允许你用Python脚本控制Notepad做一个简单的批处理。比如批量对所有打开的文件执行文本替换、调整缩进等。如果你能写十行Python这个插件就能让编辑器做出远超“宏”级别的自定义操作。Explorer在侧栏显示一个文件树免去每次都要“打开文件”对话框的麻烦适合处理一个目录下的多个文件。JSON Viewer格式化JSON文本校验JSON格式是否合法。编辑配置、查看接口返回时这个插件几乎必不可少。5.3 用Python Script做批量编码转换前面提到过批量转换编码的问题有了Python Script插件可以这样处理在插件菜单里打开Python脚本控制台输入import os from Npp import notepad, editor files [file1.txt, file2.txt, file3.txt] for f in files: notepad.open(f) # 切换到UTF-8编码 notepad.runMenuCommand(编码(N), 转为 UTF-8 编码) notepad.save() notepad.close()当然实际使用中更灵活的是写一个函数接收目录参数遍历目录内所有文件。但这种脚本有个注意事项某些非ASCII文件名或特殊编码文件在脚本中处理时会遇到坑尤其是中文文件名在不同版本的Notepad中处理方式不同建议先在两三个文件上测试确认无误后再跑全量。5.4 插件管理与故障排查装了太多插件会拖慢启动速度。每次启动都加载几十个插件和记事本相比的“秒开”优势会大打折扣。插件冲突不是没有。如果某段时间Notepad突然出现菜单错乱或稳定性问题优先怀疑最近安装的插件禁用掉试试。官方插件列表和第三方插件的更新频率差异很大不用的插件及时卸载保持环境干净。插件体系的魅力在于“按需组装”它不强迫你装任何东西但只要装一个大方得体、用得上的你的工作流效率就能明显提升。6. 性能调优与工程文件管理Notepad常被说“打开大文件比VSCode快”这确实是它的优势。但快不代表不需要调校针对不同使用场景做合适的配置能让它在保留轻量的前提下发挥出接近IDE的体验。6.1 大文件打开与处理用Notepad打开一个几百MB的日志文件比多数现代编辑器都要顺畅。但需要留意几点大文件加载时如果开启了自动语法高亮会消耗额外资源。打开前可在“设置 首选项 高亮”里临时关闭“启用”选项等文件加载完再按需开启。状态栏的“长度”和“行数”统计在大文件上也会有计算开销处理超大文件时可以关闭相关状态栏信息“视图 状态栏”。对大文件执行全局替换要格外小心尤其是正则替换。一次替换可能涉及几十万次匹配如果表达式写得不好会出现长时间卡顿。建议先用“查找 统计”看下匹配数量再做替换操作。6.2 工程目录下多文件管理面对一个工程目录不要只打开单个文件。利用“文件 打开文件夹”或者通过Explorer插件展开目录树以工程视角管理文件。这样配合CtrlShiftF在文件中查找可以在所有工程文件中搜索关键字瞬间定位到“哪个文件里用了哪个函数”。另一个工程管理习惯是合理使用“工作区”功能。把项目相关的文件拖进工作区相当于为这个项目建立了一个专属的文件分组不打开文件时也能在侧边栏快速切换。6.3 会话保存与恢复Notepad支持“退出时保存当前会话”。打开“设置 首选项 备份”可以设置“保存当前会话并下次启动时恢复”。这里有几种模式总是每次退出都记住打开的文件适合经常多文件连续工作的人。按会话询问退出时弹窗问你是否保存会话适合临时处理多个项目的场景。关闭每次启动都是空白状态适合把Notepad当临时记事本的人。如果你有稳定的工作习惯比如每早固定打开几个日志文件和一份待办清单可以用“会话”功能把这一组文件存成一个.session文件下次直接用“文件 载入会话”一键恢复。6.4 配置文件的备份Notepad的配置不是存在注册表里的便携版更是全目录化。关键配置文件包括config.xml主配置包含所有首选项设置。stylers.xml主题、字体、高亮颜色配置。plugins\config目录各插件的配置。把这些文件定期备份到网盘或Git仓库换电脑时一分钟恢复原有工作环境。这比重新记一遍自己的偏好设置靠谱得多。7. 常见问题与排查技巧实录这个环节我整理了自己这些年遇到的高频问题以及对应的排查思路。有些问题可能你暂时没遇到但遇到时按这个方向查基本能解决。7.1 中文显示乱码情况A打开一个中文文件显示全英文字符或问号。很可能文件编码是GBK/GB2312而Notepad默认以UTF-8解释。执行“编码 使用ANSI编码”一般能恢复正常阅读。情况B显示成黑色方框或乱码组合。可能是文件以UTF-8带BOM保存但被其他程序用ANSI重新保存过造成部分字节丢失。这种属于文件已经损坏只能在保留原文件副本的情况下尝试用不同编码重新打开看看哪个能最大程度还原。情况C文件本身是好的但“另存为”之后在别的程序里乱码。这通常是保存时编码选择不正确比如原文件是UTF-8你在Notepad里看正常但“另存为”时选择了ANSI就破坏了文件。另存时留意编码下拉框。7.2 文件被其他程序占用无法保存如果你在Windows下经常遇到“文件正在被另一个进程使用无法保存”的提示有几个处理思路先排查是否有其他程序比如Excel、日志监控工具以独占方式打开了该文件。借助Process Explorer或资源监视器找到占用文件的进程。如果只是临时编辑且文件本身数据不敏感可以换个文件名保存再替换目标文件。一些运维场景下日志监控工具持续占用文件也可能导致这个问题记得在运维工具侧释放句柄。7.3 启动非常慢如果Notepad从“秒开”变成了“等好几秒”首要怀疑对象是插件太多。排查方法“设置 首选项 插件”里查看已加载的插件列表。暂时禁用最近安装的几款插件重启测试。如果安装了Python Script并且有大量脚本任务注意不要放入耗时的启动自动执行任务。另外“历史文件列表”过多也会拖慢启动。在“设置 首选项 备份”里可以限制最近文件列表的长度。7.4 快捷键冲突Notepad为各种功能分配了快捷键但有时候和系统或其他软件冲突比如CtrlAlt方向键在某些系统里被显示旋转占用。处理方式打开“设置 管理快捷键”可以自定义几乎所有的编辑器快捷键。当某个快捷键“按了没反应”或“弹出了别的功能”时先在快捷键列表里搜索该快捷键看看是否被分配给了其他命令。如果只是某个特定软件下冲突考虑是系统级快捷键还是编辑器内快捷键系统级快捷键只能在系统里改或者到对应软件里调整。7.5 插件装不上或失效检查Notepad版本某些老插件不支持64位新版。需要确认你的Notepad是32位还是64位插件是否匹配。官网下载的插件若是.zip解压后把正确的.dll文件放入plugins目录即可。不要直接放压缩包。安装插件后启动即闪退多半是插件与当前版本不兼容删除该插件文件重启可恢复。插件管理器里搜不到某个插件可能是该插件未收录或已下架可以去官方论坛或社区仓库找。7.6 正则替换结果不符合预期用“查找”先验证匹配范围确认正则的匹配内容正是你想要的再做替换。勾选“正则表达式”后注意查找窗口底部会提示表达式的匹配次数。如果为0说明表达式本身有问题。替换或查找时可先用正则“捕获分组”的方式把想要的部分先标记出来观察标记区域是否正确。遇到换行符不匹配时检查“匹配换行符”选项或改用\r\n显式区分Windows换行\n处理Unix换行。8. 几个工作场景的综合演练讲理论可能还不够直观这里用三个我实际处理过的场景来演示如何把前面提到的技巧组合起来使用解决一个完整问题。这样比单独记功能点更容易内化。8.1 场景一清洗一份导出数据从业务系统导出的数据通常是乱糟糟的UTF-8 CSV里面时间格式不统一注释行杂糅还偶尔有BOM表头。我的处理顺序是这样先“编码 转为UTF-8编码不带BOM”去掉隐藏的BOM标记。用正则替换把不统一的时间格式统一(\d{4})年(\d{1,2})月(\d{1,2})日替换为$1-$2-$3把各种日期格式统一成YYYY-MM-DD。用“查找 标记”把注释行高亮出来逐行确认后按行删除或用宏批量删除。最后用“编辑 行操作 排序”按关键列排序再通过“视图 总结”检查总行数确认清洗前后的数据量对得上。整个流程大概两分钟如果手工一行行处理估计一小时起步。8.2 场景二快速定位日志中的高频错误服务器日志动不动上千行肉眼找错误很痛苦。我会这样操作打开日志后CtrlF搜索ERROR把查找模式切换为“在文件中查找”或直接统计出现次数。如果ERROR数量太多用正则把包含详细报错细节的行提取出来查找.*ERROR.*替换为同内容并记录。用“插件 MIME Tools”对报错信息做URL解码便于阅读完整接口错误。对相同反复出现的报错用“标记”功能在所有相同错误文本上高亮通过行号判断出现的频率和时间段。这个组合操作能帮我在不写复杂脚本的情况下快速判断到底是“偶发一次”还是“持续不断的报错”。8.3 场景三重命名大量文件Notepad不能像专门工具那样可视化重命名但可以把它跟批处理组合使用。例如有一个目录里的文件全部是IMG_20240501_123456.jpg想统一改成photo20240501_123456.jpg。思路是把文件名单列出来在Notepad里用正则批量处理好新文件名再配合Excel或其他方式生成ren命令最后在CMD里执行。在Notepad里处理文件名列表时正则替换可以一次性完成所有重命名规则查找IMG_(\d{8})_(\d{6})替换为photo$1_$2。这比每个文件右键重命名高效太多。这三个场景背后有一个共同点先思考清楚哪些操作是可批量、可自动化、可验证的再动手。Notepad提供的是这些操作的基础设施用好它的正则、宏、列模式就能把重复劳动压缩到最小。写在后面我的个人配置清单最后分享一个我用了很久的配置清单可以作为你调整自己环境的起点编辑器主题深色背景如Obsidian高亮配色选择对比度适中的方案避免长时间看屏幕产生疲劳。字体代码用JetBrains Mono日常文本用微软雅黑或系统默认。编码习惯所有新文件默认UTF-8无BOM除非明确需要其他编码。常用快捷键CtrlH替换、CtrlF2书签、Alt拖动列模式这三个是肌肉记忆级别的。插件精简Compare、MIME Tools、Explorer、Python Script、JSON Viewer安装超过五个就开始谨慎评估必要性。再强调一次工具是拿来解决问题的不是拿来折腾的。Notepad最好的使用方式是把它融入日常工作流里让“选中一段文本 - 替换/整理/分析”变成一种条件反射。当你不再需要停下来思考“编辑器能做什么”时它就成了你效率和专注力的一部分。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价