Notepad++ 怎么用?上手的全部门槛只有四个键:Ctrl+N 新建、Ctrl+O 打开、Ctrl+S 保存、Ctrl+F 查找。剩下所有功能都长在这四个动作之上。
真正区分“会用”和“用得熟”的,是两个东西:列编辑和多光标。它们能把十分钟的重复手改压成几秒钟,而且不需要装任何插件。
很多人装完 Notepad++,用了三年,其实只用了它很小一部分能力。这不是夸张:我见过同事一条一条手动给 100 行数据加前缀,加了二十分钟。而这个操作在 Notepad++ 里的正确耗时是三秒:按住 Alt 拖一下,打一行字,完事。
这事的根因不在人懒,在于没人告诉他有这一下。列编辑这个功能在绝大多数入门教程里只占一句话,甚至一个字都不提。它是 Notepad++ 少数几个比 VS Code 顺手的功能。
本文基于 Notepad++ 中文站 当前版本 8.9.5 撰写,界面以简体中文为准。这是一篇面向零基础的新手教程,可以照着从头做到尾;用了几年的老用户建议直接从第五章看起。
读完你应该能干三件事:
- 给 100 行数据的行首批量加前缀
- 在 200 行长短不一的行尾各加一个逗号,并且知道为什么这两种情况要用不同的功能
- 用 Notepad++ 完整写完一篇带表格和代码块的 Markdown 文档
快速答案:Notepad++ 怎么上手最快?
记住四个键就能开始用,掌握列编辑和多光标就能比大多数人快。
- 四个键就能上手:
Ctrl+N新建、Ctrl+O打开、Ctrl+S保存、Ctrl+F查找。 - 状态栏右下角同时显示编码格式、行尾符类型、文件语言、行列号。排查问题先看这里,它免费给你六条线索。
- 列编辑(Alt+拖拽)是 Notepad++ 最被低估的功能,能在对齐的多行同一列同时插入内容;
Alt+C列编辑器还能插递增序号。 - 多光标需要手动开启,而且开关位置随版本变过:v8.6.3 起在“设置 → 首选项 → 编辑 2 → 启用多编辑”,更早的版本在“编辑”页签。默认不开的话,
Ctrl+点击是完全没反应的。 - 列编辑只处理对齐的矩形区域,多光标处理不规则位置,正则替换处理有条件的批量。第六章末尾的决策表按任务类型给出选型。
- Notepad++ 默认不自动保存,需要自己在“设置 → 首选项 → 备份”里开。
一、打开之后先看哪儿:四个区域和状态栏
打开软件先看四个区域,其中状态栏是多数人从头到尾没看过的那个。
四个区域
从上到下依次是:
| 区域 | 作用 | 容易忽略的 |
|---|---|---|
| 菜单栏 | 所有命令的总入口 | 后面的章节里我会用“设置 → 首选项 → 新建”这种箭头格式指代菜单路径 |
| 工具栏 | 常用命令的图标 | 可以在“设置 → 首选项 → 工具栏”里增删图标 |
| 编辑区 | 打字的地方,支持多标签和分屏 | 左边是行号栏,书签和折叠标记都在这里 |
| 状态栏 | 最底下一行 | 多数人从头到尾没看过它,而它是排查问题的第一现场 |
状态栏会告诉你什么
状态栏从左到右依次显示:
行 42, 列 15 | 第 3 个文档, 共 8 个 | 插入 | Windows (CR LF) | UTF-8 | Java 源文件
逐项解释:
- 行列号:光标当前位置。
Ctrl+G可以直接跳到指定行号。 - 文档计数:当前是第几个标签、一共开了几个。
- 插入 / 改写:按
Insert键切换。不小心碰到Insert会变成“改写”模式,打字时后面的字被吃掉,这是新手最常遇到的“诡异故障”之一,看一眼状态栏就明白了。 - 行尾符:
Windows (CR LF)/Unix (LF)/Mac (CR)。这个文件最终要在 Linux 上跑吗?看这里。 - 编码:
UTF-8/UTF-8-BOM/ANSI/GB2312等。注意它显示的是 Notepad++ 的猜测结果,不是文件的真实编码,乱码排查时不能完全信它。 - 文件类型:当前识别的语言,点它可以改。
后面排查乱码、换行符、脚本执行失败这类问题时,第一件事永远是看状态栏这六个字段。其中编码这一项为什么“猜得不准”、真正的编码要怎么确认,见 Notepad++ 编码识别与乱码排查。
多标签与分屏
- 多个文件以标签形式排列,
Ctrl+Tab切换,Ctrl+W关闭。 - 分屏(双视图):把标签拖到编辑区边缘,或者右键标签选“移动到另一视图”。同一个文件可以右键选“克隆到另一视图”,实现上下两段对照编辑。
- “视图 → 移到新窗口”可以把标签独立成一个新窗口。
二、新建、打开、保存:第一次保存就要选对编码
新建、打开、保存,看起来没什么可讲。但“第一次保存”这个动作里藏着一个坑:它决定了这个文件以后在别人电脑上是不是乱码。
四个基本键
| 快捷键 | 作用 | 说明 |
|---|---|---|
Ctrl+N |
新建 | |
Ctrl+O |
打开 | 支持多选 |
Ctrl+S |
保存当前文件 | |
Ctrl+Alt+S |
另存为 | 注意不是 Ctrl+Shift+S |
Ctrl+Shift+S |
全部保存 | 开了十几个标签时很省事 |
Ctrl+Shift+T |
恢复刚关闭的标签 | 误关了标签不用慌 |
还有一个很有用的:Ctrl+Alt+S 的另存为对话框底部有编码下拉框,可以边存边改编码。
直接拖文件进来更快
把文件从资源管理器直接拖到 Notepad++ 窗口即可打开,多个文件一起拖也能开。这比走“文件 → 打开”对话框快得多。
如果想让 .txt、.log、.md 这类文件双击默认用 Notepad++ 打开,去“设置 → 首选项 → 文件关联”里勾选。Windows 更新后偶尔会把这个关联抢回给系统记事本,抢了就重新勾一次,属于正常现象。
还没装的话,先从 Notepad++ 官方下载页 拿一份安装包,建议直接选 64 位版本。后面第十一章会讲到,版本位数选错会导致插件装不上。
首次保存一定要选对编码
新文件的默认编码取决于“设置 → 首选项 → 新建”里的设置。如果这个设置是 ANSI(中文 Windows 下等于 GBK),你写的中文就存成了 GBK 字节。等这个文件传给同事、传到 Linux 服务器、或者用其他编辑器打开,就可能变成乱码。
建议第一次用就把默认编码设成 UTF-8(无 BOM),方法是“设置 → 首选项 → 新建 → 编码 → UTF-8”。这是一次性成本,能省掉后面无数次救火。
如果文件已经是乱码了,别慌,也别乱点。乱码的两步救回法 里有一套不会毁文件的两步救回法,顺序错了才会把文件彻底搞坏。
Notepad++ 默认不自动保存
这一条要单独说,因为它是“写了半天全没了”这类事故的主要来源。
Notepad++ 默认不会自动保存你正在编辑的内容。它有一个“会话快照”机制,能在意外关闭后恢复一部分,但这不是自动保存。
要开启的话:
- “设置 → 首选项 → 备份”里可以开启备份与会话快照;
- 想要真正的“每隔 N 分钟自动存盘”,通常要装 AutoSave 插件。
相关设置的完整说明在 配置备份与自动保存 里,包括备份目录在哪、哪些配置该备份。
三、选择、移动、撤销:批量操作的基本功
双击选词、三击选行、Ctrl+箭头 按单词跳。选择文本的速度,决定了后面所有批量操作的效率。
选择
| 操作 | 效果 |
|---|---|
| 双击 | 选中一个词 |
| 三击 | 选中整行 |
Ctrl+A |
全选 |
Ctrl+左/右箭头 |
按单词跳过(不是按字母) |
Shift+Home/End |
选到行首 / 行尾 |
Shift+上下箭头 |
逐行扩展选择 |
Ctrl+箭头 按单词跳这一条,用习惯了之后就不会再按住左箭头一格格挪了。
移动
| 操作 | 效果 |
|---|---|
Home / End |
行首 / 行尾 |
Ctrl+Home / Ctrl+End |
文件开头 / 文件结尾 |
Ctrl+上下箭头 |
滚动一行(光标不动,视图滚动) |
Alt+左箭头 / Alt+右箭头 |
在导航历史里后退 / 前进 |
Alt+左右箭头 是很多人不知道的一组:你跳到文件第 3000 行看完一段,按 Alt+左箭头 就回到原来的位置,不用再滚回去。它记录的是你停留过的光标位置历史。
撤销
Ctrl+Z 撤销,Ctrl+Y 重做。Notepad++ 支持多步撤销。
一个需要注意的点:撤销历史在文件关闭后就清空了。关掉标签再打开,Ctrl+Z 救不回来。这也是为什么做破坏性操作(尤其是批量替换)之前,另存一份 Ctrl+Alt+S 是值得的。
四、行操作:复制、删除、移动、合并的五个快捷键
整行整行地搬文本,是写代码和整理数据时最高频的动作。五个快捷键。
1. 复制当前行:Ctrl+D
光标放在任意位置按 Ctrl+D,当前行被复制一份插入到下一行。不用选中、不用复制粘贴。
给配置文件加一条相似的配置时,这比“选中 → 复制 → 回车 → 粘贴”快三倍。
2. 删除当前行:Ctrl+L / Ctrl+Shift+L
这一对特别容易记混,但 Scintilla 官方文档的命令表里写得很确定:
| 快捷键 | 命令 | 官方描述 |
|---|---|---|
Ctrl+L |
SCI_LINECUT |
把整行(含行尾换行符)剪切到剪贴板 |
Ctrl+Shift+L |
SCI_LINEDELETE |
删除整行(含行尾换行符),不影响剪贴板 |
所以:想删掉一行不留痕迹,用 Ctrl+Shift+L;想挪到别处去,用 Ctrl+L 剪切,再 Ctrl+V 粘贴到目标位置。
想确认自己机器上的实际绑定,去“设置 → 快捷键映射器 → 主菜单”页签里搜这两个键。
3. 整行上下移动
Ctrl+Shift+上/下箭头:把当前行(或选中的多行)整体上下移动,这是 Notepad++ 默认映射里最常用的一组。
调整代码顺序、调整列表项顺序时,这比剪切再粘贴干净得多,不会留下空行。
⚠️ 一条容易踩的坑:Alt+Shift+上/下箭头 不是移动行,它是矩形(列模式)选择扩展,第五章的列编辑正好用的就是它。而 Alt+上/下箭头 在官方手册里并没有被记录为移动行的快捷键,别把它和 VS Code 的习惯搞混。
4. 合并行与拆分行
Ctrl+J:把多行合并成一行(去掉换行,用空格连接)Ctrl+I:按窗口宽度拆分当前行
Ctrl+J 在整理从 PDF 或网页复制来的、被强制断行的文本时特别好用:选中那几行,按一下,它们就接成完整的一句话了。
5. Tab / Shift+Tab 整块缩进
选中多行后:
Tab整块右移一个缩进Shift+Tab整块左移
缩进宽度和“用 Tab 还是空格”在“设置 → 首选项 → 语言”里设置,Python 项目建议勾上“替换为空格”。
删除空行的两种做法
做法一(内置菜单,简单场景够用):“编辑 → 行操作 → 移除空行(含空白字符行)”。一键搞定,不用记任何正则。
做法二(正则,复杂场景才需要):搜索模式选“正则表达式”,查找 ^[ \t]*\r?\n,替换为空。
什么时候需要做法二?当你要处理的是“只删除连续空行中的一部分”、或者“只删除某一段里的空行”这类有条件的场景。内置菜单是一次性全清,正则可以配合选区和“在选定内容中替换”精确控制范围。
完整的正则替换体系(含 15 个可直接抄的实例)在 正则替换 15 个实例 里,这里不展开。
行操作里还有一整套“删除重复行 / 排序 / 移除空行”的清洗流水线,用来把从 Excel、网页、日志里捞出来的脏数据理干净,见 Notepad++ 删除重复行与排序。
五、列编辑(按住 Alt 拖):Notepad++ 最被低估的功能
Notepad++ 列编辑(也叫列模式、矩形选择)就是按住 Alt 键拖出一个矩形选区,在选中的多行同一列上同时输入或删除内容。它解决的问题很具体:怎么一次修改 N 行的同一列。
先说清楚它能干什么。假设你有这样一段数据:
1001 张三 销售部
1002 李四 技术部
1003 王五 市场部
1004 赵六 技术部
现在要给每一行的行首加上 INSERT INTO staff VALUES ('。手工做就是复制粘贴四遍;数据有 100 行就是一百遍。
列编辑的做法是:按住 Alt,用鼠标从第 1 行的行首拖到第 4 行的行首,你会看到一个细长的矩形选区。这时候直接打字,四个光标位置同时插入:
INSERT INTO staff VALUES ('1001 张三 销售部
INSERT INTO staff VALUES ('1002 李四 技术部
INSERT INTO staff VALUES ('1003 王五 市场部
INSERT INTO staff VALUES ('1004 赵六 技术部
一步到位。这就是列编辑。
三种进入列选择的方式
| 方式 | 操作 | 适合什么场景 |
|---|---|---|
| 鼠标拖拽 | 按住 Alt + 鼠标左键拖拽 |
最直观,绝大多数时候用这个 |
| 键盘选择 | Alt+Shift+方向键 |
精确控制,或者不想碰鼠标时 |
| 从当前位置到指定行 | 先把光标放到起点,再用 Alt+Shift+下箭头 拉出范围 |
行数很多时 |
选区建立后,你可以直接打字(所有行同时插入)、按 Delete(所有行同时删除该列)、或者 Ctrl+C / Ctrl+V 复制粘贴。
Alt+C:列编辑器,不只是插文本
Alt+C 打开“编辑 → 列编辑器”,这是列编辑里最实用的一块。它有两种模式:
模式一:插入文本
在“要插入的文本”框里填内容,选中的每一行都会被插入这段文字。适合批量加前缀、加缩进、加注释符。
模式二:插入数字(递增序号)
三个核心参数:
| 参数 | 含义 | 例子 |
|---|---|---|
| 初始数字 | 从哪个数开始 | 填 1,第一个就是 1 |
| 增量 | 每个之间加多少 | 填 1 得 1,2,3,4;填 2 得 1,3,5,7 |
| 重复次数 | 同一个数字重复几遍再递增 | 填 2 得 1,1,2,2,3,3 |
另外还有两个常被忽略的:
- 格式:可以选十进制、十六进制、八进制、二进制。想生成
0x10、0x11、0x12这样的十六进制序列,直接在这儿选 Hex。 - 前导零:勾选后,编号会补零对齐,比如
001、002、003。生成固定宽度的编号时用得上。
一个有用的细节:不管你是从上往下选还是从下往上选,列编辑器生成的编号永远是从上往下递增的。这个行为是固定的,所以不用纠结选择方向。
顺便说一句,从 v8.8.6 开始,十六进制输出还可以选大小写(A-F 还是 a-f)。如果你用的是更老的版本,只有大写。
实战:给 100 行数据加前缀和行尾逗号
这个例子值得完整走一遍,因为它会暴露列编辑的边界。
数据(为演示只列 4 行,实际操作 100 行也一样):
1001 张三 销售部 8500
1002 李四 技术部 12000
1003 王五 市场部 9300
1004 赵六 技术部 15600
第一步:行首加前缀。 列编辑的活,Alt 从第 1 行行首拖到最后一行行首,输入 (':
('1001 张三 销售部 8500
('1002 李四 技术部 12000
('1003 王五 市场部 9300
('1004 赵六 技术部 15600
第二步:行尾加逗号。 这一步列编辑做不了,因为每行长度不一样,行尾不在同一列,拖出来的矩形选区没法同时覆盖四个行尾。
这时候有两条路,取决于你的数据长什么样:
- 如果各行长度恰好一致(比如固定宽度的导出数据),列编辑仍然可以:把矩形选区拖到最后一行最长的那个位置之后,直接打逗号。
- 如果长度不一致(绝大多数情况),正则最省事:查找
^(.+)$替换\1,。 多光标理论上也能做,但要逐行点,下一章会把这件事说清楚,包括一个流传很广、其实是错的快捷键说法。
这个“行首能、行尾不能”的差别,就是列编辑最核心的局限:它只能处理对齐的矩形区域。 数据是整齐的,它快得离谱;数据长短不齐,它无能为力。
列编辑的另外两个限制
- 只处理“列”,不处理“模式”。 它能给 100 行的第 5 列同时加内容,但没法“只给技术部的行加”。有条件的批量处理是正则和脚本的领域。
- 对中文的支持要注意对齐。 中文字符通常是双宽的,如果你的字体设置导致中文和英文宽度不对齐,拖出来的“视觉矩形”可能跟实际的字符位置有偏差。处理中文数据前,建议先在 设置里把编辑器字体改成等宽字体;改完还不放心,就换多光标或正则。
六、多光标:先开启,再谈怎么一次改多处
Notepad++ 多光标编辑(多编辑)是在文件里任意多个位置各放一个光标,打字时所有光标同时输入。列编辑处理得了整齐的,处理不了东一个西一个的,这一章讲的是后者。
前置条件:先启用多编辑(这一步几乎所有教程都漏了)
Ctrl+点击 默认可能是没反应的。 多光标功能需要手动开启,而且开关的位置随版本变过:
| Notepad++ 版本 | 开关在哪 |
|---|---|
| v8.6.3 及之后 | “设置 → 首选项 → 编辑 2 → 勾选‘启用多编辑(Ctrl+鼠标点击/选择)’” |
| v8.6 – v8.6.2 | 这个功能默认开启,选项被临时移除了 |
| v8.6 之前 | “设置 → 首选项 → 编辑 → 勾选‘启用多编辑(Ctrl+鼠标点击/选择)’” |
如果你用的是 8.6.3 或更新的版本,在“编辑”页签里翻来翻去是找不到的,它搬到“编辑 2”了。这是很多人在新版本上“按教程做了没反应”的真正原因。
勾上之后是否要重启才生效,我没验证过;我的经验是大部分情况立即生效,不放心就重启一次。
三种放置光标的方式
1. Ctrl+鼠标点击:在任意位置加光标
按住 Ctrl,在你想改的每个位置点一下。然后直接打字,所有光标位置同时输入。位置可以不规则,中间可以隔很多行。
从 v8.6.1 起有个很贴心的行为:在已经放了光标的位置再 Ctrl+点击 一次,会取消那一个光标,不影响其他光标。放错了不用推倒重来。
2. 选中一段后 Ctrl+点击+拖拽:加第二个选区
先正常拖选一段文字,然后 Ctrl+拖拽 选第二段。这样可以一次复制多处内容,或者同时替换多处不同的文本。
3. 在多行行尾同时放光标:没有一键快捷键
⚠️ 这一条要专门讲,因为中文教程里流传很广的一个说法是错的。
“选中多行,按 Ctrl+Shift+L,每行行尾各加一个光标”。这个说法是照抄 VS Code / Sublime 的,在 Notepad++ 里不成立。
Notepad++ 官方用户手册的 Scintilla 命令表里,Ctrl+Shift+L 绑的是 SCI_LINEDELETE,官方描述是“删除整行(含行尾换行符),不影响剪贴板”。也就是说,你在 Notepad++ 里按它,得到的是当前行被删掉,而不是一排光标。
按Notepad++ 官方用户手册的说法,多编辑功能只能通过鼠标操作(原文:“available via mouse usage only”):Ctrl+点击 逐个加光标,或者 Ctrl+点击+拖拽 加第二个选区。手册里没有“选中多行、一键在每行行尾放光标”这条命令。
那行长不一致时,200 行行尾各加逗号到底怎么干?四条路,按划算程度排:
| 做法 | 怎么操作 | 适合什么情况 |
|---|---|---|
| 正则(推荐) | ^(.+)$ → \1, |
行长不一致、行数多。最快,一次点都不用点 |
| 零宽列选择 | 光标放到行尾,Alt+Shift+下箭头 拉到最后一行 |
只适合行长一致。列选择选的是“同一列”,不是“各行行尾” |
| 多光标逐行点 | Ctrl+点击 每行放一个光标,再按 End 统一移到行尾 |
十来行以内。200 行要点 200 次,不划算 |
| 装插件 | BetterMultiSelection:先列选覆盖目标行,再按 End |
天天要干这件事的人 |
我的选择是正则。200 行的量级,Ctrl+H 一条替换两秒钟完事,没必要数着点。
另外还有两条路。宏:“宏 → 开始录制”录一遍操作,再“宏 → 重复运行”指定次数,适合不会写正则、但要重复同一串固定操作的情况;代价是宏录的是光标轨迹,行长短不一时容易跑偏,录制前先想清楚,具体步骤见 批量替换与正则语法。天天要干这件事的话,装个光标增强插件比每次写正则省事,哪些值得装、怎么避开位数不匹配的坑见 Notepad++ 光标与选择类插件。
另外还有几个相关功能:Ctrl+F3 选中光标处的词并跳到下一处匹配;想看全文共有多少处,在查找对话框按 Ctrl+M 打开“标记”页、勾“标记全部”;Ctrl+F2 是打书签,用法在第八章讲。
多编辑和列编辑不能混用
这是一条官方手册里明确写了、但中文教程几乎不提的规则:
多编辑只在“流式选择”下工作,不和列块选择同时生效。 列模式下,同一时间只能有一个选区。
换句话说:你按着 Alt 拖出来的矩形,和 Ctrl+点击 放出来的多个光标,是两套互斥的机制。 想从一种切到另一种,先按 Esc 取消当前选择。
从 v8.6 起,Notepad++ 增加了一个选项“启用列选择转多编辑”(同样在“编辑 2”页签),打开之后列选择会被当成多编辑选择来处理,两套机制能有限地互通。这个功能不是所有人都需要,默认状态就够用。
列编辑 vs 多光标 vs 正则:该怎么选
这张表回答一个问题:我手上这个任务该用哪个。
| 你的任务 | 列编辑 | 多光标 | 正则替换 |
|---|---|---|---|
| 给连续 100 行的行首加同样的前缀 | ✅ 最快(Alt+拖拽,打字) | 也行,但要放 100 个光标 | 可以,但要写正则,杀鸡用牛刀 |
| 给 200 行行尾各加逗号(行长不一) | ❌ 不行(行尾不对齐) | △ 能,但要逐行点 200 次 | ✅ 最合适(^(.+)$ → \1,) |
| 插入递增序号 1、2、3… | ✅ 唯一选择(Alt+C) |
❌ 做不到 | ❌ 做不到 |
| 改散落在文件各处的同一个词 | ❌ | ✅ Ctrl+点击 逐个放光标 |
✅ “全部替换”最快 |
只改以 # 开头的行 |
❌ | ❌ | ✅ 唯一选择 |
| 一次改几十个文件 | ❌ | ❌ | ✅ 在文件中替换 |
| 修改一个固定宽度的数据列 | ✅ 最合适 | 也行 | 也行 |
一句话记:对齐的用列编辑,不对齐但只有几处用多光标,不对齐且量大、或者带条件的用正则。
七、注释、折叠与括号匹配:长文件的三个省力开关
代码一长,注释、折叠、括号匹配这三样就从“锦上添花”变成“离了不行”。
注释
Ctrl+Q:单行注释切换(再按一次取消)Ctrl+Shift+Q:块注释(/* */风格)
Ctrl+Q 的好处是注释符号跟着当前语言自动变:JavaScript 是 //,Python 是 #,SQL 是 --,HTML 是 <!-- -->。你不用记每种语言用什么符号。
选中多行后按 Ctrl+Q,每一行都会被注释。
折叠
折叠标记在行号栏左侧的小三角/加减号上。
| 操作 | 效果 |
|---|---|
点行号旁的 - / + |
折叠 / 展开单个块 |
Alt+0 |
折叠所有层级 |
Alt+Shift+0 |
展开所有 |
Alt+1 ~ Alt+8 |
折叠到第 1~8 层 |
Alt+0 看代码骨架特别好用:全部折叠后,一个文件的结构(有哪些函数、哪些类)一目了然。
折叠依赖语言识别。如果当前语言是“普通文本”,没有可折叠的语法结构,这些快捷键就不会有效果,这也是“我按了 Alt+0 却什么都没发生“最常见的原因。折叠与快捷键没反应的排查里列了完整的检查顺序。
括号匹配
光标放在 (、[、{ 任一端,按 Ctrl+B 跳到配对的另一端。同时两端会高亮。
写嵌套很深的表达式、或者在几百行的函数里找结尾的 } 时,这比数括号靠谱得多。
括号高亮的样式可以在“设置 → 首选项 → 高亮”里调整,默认是红色加粗。
八、书签与导航:在长文件里不迷路
文件一长,找东西就成了主要工作量。
书签
| 快捷键 | 作用 |
|---|---|
Ctrl+F2 |
在当前行打书签(再按一次取消) |
F2 |
跳到下一个书签 |
Shift+F2 |
跳到上一个书签 |
Ctrl+Shift+F2 |
清空所有书签 |
书签会显示在行号栏左侧,是一个蓝色圆点。
书签真正的威力在于批量生成:在查找窗口的“标记”标签页里勾选“书签行”,然后点“标记所有”,所有匹配的行会一次性被打上书签。之后用 F2 逐个过目。“标记”页的完整参数(标记样式、清除标记、在文件中标记)在 查找与标记功能详解里有逐项说明。
比如要检查一个 5000 行的配置文件里所有 timeout 相关的设置:搜 timeout,标记所有,然后 F2 逐个跳。这比反复按“查找下一个”强,因为书签是持久的,你中途改了别的地方也不会丢。
书签还有几个进阶用法在“搜索 → 书签”菜单里:复制所有书签行(把标记的行提取出来粘贴到新文件)、删除所有书签行、反向选择(删除未标记的行)。做数据筛选时这几条很省事。
跳转
| 操作 | 效果 |
|---|---|
Ctrl+G |
输入行号直接跳 |
Alt+左/右箭头 |
在光标历史里后退 / 前进 |
Ctrl+B |
跳到匹配括号(见上一章) |
函数列表面板
“视图 → 函数列表”会在侧边显示当前文件的函数/类/方法大纲,点击直接跳转。
这个面板依赖语言识别,还支持自定义规则(配置文件在 functionList\ 目录下)。对 Python、C、Java、JavaScript 这类主流语言开箱即用。
写长文档时它还有个另类用法:如果你给 Markdown 配了自定义语言规则,标题也可以被识别成“函数”列出来。这个在下一章会提到。
九、实战:用前八章的技能写完一篇 Markdown 文档
写 Markdown 是最好的综合练习,因为它同时要用到语法高亮、列编辑、书签、折叠和代码块处理。
为什么用 Notepad++ 写 Markdown
说实话,Notepad++ 不是专门的 Markdown 编辑器,它没有所见即所得的编辑体验。但它在几个场景下很合适:
- 离线、轻量:打开就写,不用等加载,不占内存;
- 纯文本天然兼容代码仓库:
.md文件进 Git,diff 清晰,review 友好; - 和代码混写方便:技术文档里大量的代码块、命令、配置片段,在 Notepad++ 里处理和写代码是一样的;
- 大文件不卡:几百 KB 的长文档,Notepad++ 毫无压力;
- 能装进 U 盘:Notepad++ 便携版解压即用,不留注册表,配置跟着目录走,换台电脑接着写。
如果你的主要需求是“写博客、要实时预览、要图片拖拽”,那 VS Code 或 Typora 更合适。这个取舍我会在第十章说。
第一步:先让 Markdown 有语法高亮
Notepad++ 默认不带 Markdown 语法高亮(至少到 8.x 为止,语言菜单里没有 Markdown 这一项)。这不是我记错,连 MarkdownViewer++ 插件的官方文档都明确写了“本插件不给 Notepad++ 添加 Markdown 高亮”,并推荐用第三方自定义语言文件。
解决办法是导入一个自定义语言(UDL)文件:
- 下载 Markdown 的 UDL 文件。社区里流传较广的是
markdown-plus-plus项目那套(提供 default / obsidian / solarized 等几个配色)。 - “语言 → 自定义语言格式 → 导入”,选择下载的
.xml文件。 - 重启 Notepad++,在“语言”菜单最下方找到 Markdown,选中。
如果你的版本已经自带了 Markdown 选项,跳过这步。
自定义语言(UDL)的原理和配置方法,在 自定义语言 UDL 配置 里讲得比较细,包括怎么导出给同事共用。
第二步:用列编辑快速画 Markdown 表格
Markdown 表格的源码长这样:
| 名称 | 类型 | 说明 |
| --- | --- | --- |
| name | string | 用户名 |
| age | int | 年龄 |
| email | string | 邮箱 |
手写这个很烦,尤其是列多了之后,对齐是纯体力活。
用第五章的列编辑来做:
- 先把内容按列写好,用
|分隔(可以先不用管对齐):
| 名称 | 类型 | 说明 |
| name | string | 用户名 |
| age | int | 年龄 |
| email | string | 邮箱 |
-
插入分隔行:把第一行复制一份(
Ctrl+D,第四章),然后用列编辑选中这一整行的列区域,把内容替换成| --- | --- | --- |。 -
对齐列宽:如果某一列的内容长短不一导致视觉上不齐,用
Alt拖出矩形选区,在短的行里补空格。
第 3 步要小心一点:列编辑补空格要求你拖出的矩形是“对齐”的,如果各行长度差异大,这一步会变成手动劳动。这时候不如放弃源码对齐:Markdown 表格的源码不需要对齐,渲染结果才是最终的。这是我个人的建议:表格列数少于 5 列时对齐一下看着舒服,超过 5 列就别折腾了,浪费时间。
如果你跳过了前面,可以回去看一眼 Alt+C 列编辑器(第五章),它还能给表格加一列递增的行号。
第三步:代码块与语法高亮
Markdown 代码块用三个反引号包裹,可以指定语言:
```python
def hello(name):
print(f"Hello, {name}")
```
指定语言后,渲染时会按该语言的配色高亮。
这里有两个坑:
- 反引号必须是英文半角。中文输入法下的
`会被当成普通字符,代码块渲染不出来。 - 语言标识要写对。
python不是Python3,js通常可以但javascript更通用。标识写错不会报错,只是没有高亮,容易让人怀疑人生。
在 Notepad++ 里写代码块时,代码本身是不会有 Python 语法高亮的(因为整个文件被识别成 Markdown)。这是它的一个短板,可以接受。我一般的做法是在另一个标签页里单独写代码,确认能跑之后再贴进 Markdown。
第四步:用书签在长文档里跳章节
文档写长了之后,在几千行里找“第三章的结尾”是个真问题。
用第八章的书签:
- 在每个章节标题那一行按
Ctrl+F2打上书签; - 之后用
F2/Shift+F2在章节之间跳; - 配合“搜索 → 标记”,可以一次性给所有
##开头的二级标题打上书签。
第 3 条是批量操作:查找内容填 ^##,搜索模式选“正则表达式”,在“标记”标签页勾选“书签行”,点“标记所有”。所有二级标题瞬间全部打上书签,然后用 F2 逐个跳。
尤其是“标记所有”那一下,把查找和书签串起来了(第八章)。
另外,第七章的折叠在这里也派得上用场:如果给 Markdown 配的 UDL 规则支持按标题折叠,你可以用 Alt+0 把整篇文档折叠成只有标题的骨架,Alt+1 展开到二级标题。这个功能取决于你导入的 UDL 规则是否定义了折叠,不是所有规则都支持。
第五步:实时预览插件
写的时候想看渲染效果,需要装插件。两个主流选择:
MarkdownViewer++(轻量、够用)
- 安装:“插件 → 插件管理”搜
MarkdownViewer++ - 打开预览:
Ctrl+Shift+M(也可以点工具栏图标,或从插件子菜单进) - 停靠面板形式,可拖动到自己习惯的位置
- 同步滚动:需要在“插件”子菜单里手动开启,开启后设置会被记住,下次自动生效
- 支持自定义 CSS,导出的 HTML 也会套用同一份 CSS
- 支持 HTML 和 PDF 导出(在设置里可以调 PDF 的纸张方向、大小和页边距)
- 规范要求:.NET Framework 4.0 或更高
- 符合 CommonMark 0.28 规范
以上信息来自 MarkdownViewer++ 官方页面。有一件事它自己也写明了:这个插件并不给 Notepad++ 添加 Markdown 语法高亮,要编辑器里的高亮还得靠前面说的 UDL 文件。很多教程把这两件事混为一谈,装上插件发现源码还是一片白,就是因为没搞清楚。
AnotherMarkdown(扩展语法多,适合写技术文档)
- 基于 WebView2(Edge) 渲染,是 NppMarkdownPanel 的 fork,底层用 markdown-it
- 支持大量扩展语法,其中最有价值的是 mermaid 流程图 / 时序图 / 甘特图、katex 数学公式、plantuml、以及代码块语法高亮
- 规范要求:.NET 4.7.2 或更高
- 工具栏上有个紫色图标,点一下开、再点一下关
- 设置里可以指定深色模式专用的 CSS,跟 Notepad++ 的深色模式联动
扩展语法的完整清单(mermaid、katex、plantuml、footnote、emoji 等都支持)在 AnotherMarkdown 的官方仓库 里有一张表,需要哪个再查不迟。
怎么选? 只写普通文档(标题、列表、表格、代码块),MarkdownViewer++ 够用且更轻。要画流程图、写公式,选 AnotherMarkdown。
手动安装时的坑:如果你是从 GitHub 下载 zip 手动装的,Windows 会默认阻止下载的 DLL,Notepad++ 会报下面这个错:
AnotherMarkdown.dll is not compatible with the current version of Notepad++
这个报错是误导性的。它其实不是不兼容,是 DLL 被锁了。解决办法是对插件目录里所有 DLL(包括子文件夹里的)逐个右键 → 属性 → 勾选“解除锁定”。能用插件管理器装就别手动装。
更多插件的选择和避坑见 Notepad++ 插件推荐。
Markdown 写作的五个常见坑
- 中英文标点混用。中文引号
“ ”和英文引号"长得像但渲染行为不同,链接里的括号尤其是重灾区。 - 缩进用 Tab 还是空格。Markdown 的列表层级和代码块靠缩进表达,Tab 和空格混用会让渲染结果跟预期不一样。建议统一转成空格。
- 代码块的语言标识写错。不报错,只是没高亮,很难排查。
- 图片用绝对路径。图一多,文档换个位置图全丢。用相对路径,图片放
images/子目录统一管理。 - 表格源码花太多时间对齐。前面说过了,渲染结果才是最终产物,源码对齐到“能看懂”就够了。
十、Notepad++ 还是 VS Code:我两个都装,按场景分工
两个我都用,而且是同时用。
数据(谨慎参考)
有一份开发者自测的数据流传很广:Notepad++ 冷启动约 0.8 秒、空载内存约 30MB,VS Code 冷启动约 3.2 秒、空载内存约 300MB。
必须说明:这是第三方博主的自测结果,测试设备、插件数量、文件类型等条件都不清楚,不能当作官方数据或权威基准。 我引用它只是因为它指向的方向和我自己的体感一致:Notepad++ 确实更快更省。
Notepad++ 赢在哪
| 维度 | 说明 |
|---|---|
| 启动速度 | 点开就进,不用等。临时改一行配置时这个差距很明显 |
| 内存占用 | 几十 MB 级别,开十几个标签也不心疼 |
| 大文件 | 几百 MB 的日志能开(配合关掉高亮和自动换行) |
| 零配置 | 装完就能用,不需要挑插件、配工作区 |
| 列编辑 | 这是它相对 VS Code 最舒服的地方,VS Code 的 Alt+拖拽行为不完全一样 |
VS Code 赢在哪
这部分要诚实说,因为差距是实打实的:
- Git 集成:提交、分支、diff、冲突解决,全在编辑器里。Notepad++ 没有。
- 调试器:断点、变量监视、调用栈。Notepad++ 没有。
- IntelliSense:智能补全、跳转定义、重构、类型提示。Notepad++ 只有基于关键字的自动补全。
- 终端集成:内置终端,不用切窗口。
- 跨平台:Windows / macOS / Linux 通吃。Notepad++ 只有 Windows(这一点在 Notepad++ 官网 上也写得很明确,它就是个 Windows 编辑器,没有跨平台计划)。
- 扩展生态:VS Code 的插件市场量级远超 Notepad++。
结论:两个都装,按场景分工
我的实际用法是这样的:
| 场景 | 用哪个 |
|---|---|
| 临时改一个配置文件、看一段日志 | Notepad++ |
| 处理几百 MB 的文本 | Notepad++ |
| 整理数据、批量改文本 | Notepad++(列编辑和正则太顺手) |
| 开发项目(写代码、调试、提交) | VS Code |
| 写需要实时预览和图表的技术文档 | VS Code + Markdown 插件 |
| 在 macOS / Linux 上干活 | VS Code(Notepad++ 上不了) |
它们不是替代关系。硬盘上多占几十 MB,换来两套趁手的家伙,很划算。
如果只是想先试试手感,下载 Notepad++ 中文版 拿一份装上看。它只有几 MB,装完不用任何配置就能用,不满意删掉也不心疼。
十一、新手最容易踩的 8 个坑
如果你已经会用,但总觉得哪里别扭,看这 8 条。更零散的疑问,Notepad++ 常见问题 里有标准答案。
- 打字时后面的字被吃掉
按到Insert键了,切换成了“改写”模式。再按一次Insert回来,看状态栏能确认。 - 中文乱码(自己打开乱码,或传给同事后乱码)
编码问题。别直接点“转为”,先“以…格式编码”试。团队统一 UTF-8 无 BOM 能根治,完整方法见 中文乱码怎么救。 - 写了半天没保存,崩了
Notepad++ 默认不自动保存。去“设置 → 首选项 → 备份”开起来,或者装 AutoSave 插件。 - 插件装不上
九成是位数不匹配:32 位的 Notepad++ 装不了 64 位插件。“? → 关于”里能看到自己是哪个版本。还没装或想换版本的话,先确认要 64 位版 还是 32 位版(现在绝大多数机器选 64 位,只有要装某些只提供 32 位的老插件时才需要 32 位)。 - 双击文件没用 Notepad++ 打开
文件关联被系统抢回去了(Windows 更新常干这事)。重新去“设置 → 首选项 → 文件关联”勾一遍。 - Python 代码缩进报错
Tab 和空格混用。“视图 → 显示符号 → 显示空格与制表符”让它们现形;Python 项目建议在“设置 → 首选项 → 语言”里勾上“替换为空格”。 - 行尾符不对,脚本在 Linux 上跑不起来
Windows 的CRLF传到 Linux 会报^M: bad interpreter。看状态栏确认当前是Windows (CR LF)还是Unix (LF),用“编辑 → 行尾符转换”切换。 - 打开大文件卡死
先关自动换行、关语法高亮。如果文件超过几百 MB,去看 大文件卡死的四步优化方案,那篇把大文件、乱码、远程编辑三类问题放在一起讲。
其中编码、行尾符、大文件这三类都属于“文件不听话”,在编码与乱码专题里集中讲透了。
十二、写在最后
如果只能记住一样,记第五章的列编辑:它是 Notepad++ 里少数几个 VS Code 做起来没这么顺手的功能。搞不定的时候改用正则,见 正则替换 15 个实例。
下一步:Notepad++ 进阶使用教程
- 要批量改写大段文本(改日期格式、提取日志字段、给 SQL 批量加语句)→ 批量替换与正则语法,里面有 15 个能直接抄的实例。
- 要把主题、字体、自动保存这些一次性设好,并且换电脑时不丢配置 → Notepad++ 设置教程。
- 要删重复行、排序、从一大堆日志里挑出有用的行 → Notepad++ 删除重复行与排序,讲文本清洗的完整流水线。